Hi,
I am new in oracle(SQL), could anyone help me in writing a
correct SQL.
Below is the table structure.
Table: Subsc
Fields:
1. Sub_no (this field will hold values of subscriber nos,
for e.g. S111111, S222222, S333333, S444444, etc.)
2. s_status (this field will hold values for different
status of subscriber, for e.g. 'A', 'S', 'C', etc.)
3. cus_id (this field will hold values of bill nos for e.g.
11111111, 22222222, 33333333, 44444444, etc.)
Table: Bill
Fields:
1. Bill_no this field will hold values of bill nos for e.g.
11111111, 22222222, 33333333, 44444444, etc.)
2. b_status = (this field will hold values for different
status of bill for e.g. 'O', 'C', 'S', etc.)
Note:
1. The Sub_no is a Primary key of Subsc table.
2. The cus_id is a foreign in Subsc table (referred from
Bill_no field of Bill table)
3. The Bill_no field is the Primary key of Bill table.
Query A --> I wrote a query to select cus_id/Bill_no which
is in status open (b_status = 'O') and having more than two
active subscriber (i.e. S_status = 'A') in it ( i.e. more
the two subscribers in same bill).
select s.cus_id
from subsc s
where exists (select 1 from bill
where bill_no = s.cus_id
and b_status = 'O')
and s_status = 'A'
group by s.cus_id
having count(sub_no) = 2
Problem : The above query will give the cus_id (or rather
bill_no) which are in open status (b_status ='O) and which
are having TWO ACTIVE Subscribers (s_status ='A') in it.
However, this query will also lists the cus_id/bill_no
which are having more than TWO subscribers in it
(but only two subscriber will be in Active status (s_status
= 'A') and the others will be in s_status = 'C' or s_status
= 'S'.
Help needed: I want to write a query which will fetch ONLY
the cus_id/bill_no which are in open status (b_status ='O')
and which are having ONLY TWO ACTIVE subscribers (s_status
='A') in it.
B--> If I include the sub_no in the above query then NO row
are returned.
select s.cus_id, s.sub_no
from subsc s
where exists (select 1 from bill
where bill_no = s.cus_id
and b_status = 'O')
and s_status = 'A'
group by s.cus_id, s.sub_no
having count(sub_no) = 2
Help needed: I want to modify the above query which will
fetch ONLY the cus_id/bill_no which are in open status
(b_status ='O') and which are having ONLY TWO ACTIVE
subscribers (s_status ='A') in it ALONG with the sub_no.
Thanks a lot in advance.
Regards,
Nitin
No Answer is Posted For this Question
Be the First to Post Answer
select 10 from dual; y its showing all the rows with 10?
What is the advantage of nosql?
What is the difference between python and sql?
What is trigger explain it?
How many sectors are in a partition?
What are user defined stored procedures ?
What is gpt format?
What is pl sql commands?
how to eliminate null values in a column i.e table vlaues 1 2 3 NULL 3 4 1 5 NULL i want output like this 1 2 3 3 4 1 5 i dnt want to use nvl is null and i dnt want replace the NULL value with any value i.e nvl(col,o);
Table 1: col1 Timestamp ---------------- 01-mar-2012 11:12:46 Table 2: col2 Timestamp -------------------- 01-mar-2012 11:12:10 01-mar-2012 11:11:23 Write a query to display a row with table2 col2 value less than tabl1 col1 value. Maximum timestamp value previous to table1 col1 value. Display a result as: Col1 col2 ----- ----- 01-mar-2012 11:12:46 01-mar-2012 11:12:10
What are the different types of tables in sql?
What's the procedure?
Oracle (3259)
SQL Server (4518)
MS Access (429)
MySQL (1402)
Postgre (483)
Sybase (267)
DB Architecture (141)
DB Administration (291)
DB Development (113)
SQL PLSQL (3330)
MongoDB (502)
IBM Informix (50)
Neo4j (82)
InfluxDB (0)
Apache CouchDB (44)
Firebird (5)
Database Management (1411)
Databases AllOther (288)