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
select * from emp where sal in(select max(sal) from emp) here there is any limit for in operator how many values accpect ?
What is normalization ?
9 Answers BirlaSoft, CTS, HCL,
Create a procedure to delete certain records from a table and display the total number of records deleted in this process. (Condition for deletion can be of ur choice, for instance delete all records where eid='')
Does inner join return duplicate rows?
Can we relate two different tables from two different users in ORACLE,PL/SQL?
How to count the no of records of a table without using COUNT function?
What is an alias command?
How can I pass the inner procedure value to outer procedure ?
why sql is used as interpreter frequently rather than a compile?
How to write a procedure for displying the data in a TREE or (PARENT and CHILD ) relationship , for ex: A is the main project id, for this project B,C,D are sub tasks(sub project id's) for B the sub tasks are e,f,g and for c is h ,i ,j and for d is k,l,m now i need to display the o/p in a TREE fashion pls help me , thanks in advance surendra
What is orm in sql?
How do you display "13th of November, 17 days left for month end" without hardcoding the date.