| Author |
Topic |
|
Chloe_19
Starting Member
44 Posts |
Posted - 2012-03-22 : 20:22:56
|
Says missing right parenthesis on last line :AND C.SUBJECT_CDE = D.SUBJECT_CDE))D)I dont see the problem. I closed all brackets.Any advice?FROM(--PROVIDER COUNTselect distinctC.OUA_ID,C.PAYMENT_MTHD_COUNT,C.PROVIDER_CDE,C.PAYMENT_MTHD,C.ENROL_STATUS,C.SUBJECT_CDE,D.OUA_DISCIPLINE_CDEFROM(SELECT *from(SELECT OUA_ID, PAYMENT_MTHD,PROVIDER_CDE, ENROL_STATUS,SUBJECT_CDE, count(*) PAYMENT_MTHD_COUNTfrom OUA_ENROLMENT_MV GROUP BY OUA_ID, PAYMENT_MTHD, PROVIDER_CDE,ENROL_STATUS,SUBJECT_CDE))cINNER JOIN(SELECT *from(select OUA_DISCIPLINE_CDE, SUBJECT_CDEfrom OUA_UNIT_VWgroup by OUA_ID, OUA_DISCIPLINE_CDEon C.OUA_ID = D.OUA_IDAND C.SUBJECT_CDE = D.SUBJECT_CDE))D)--where OUA_ID = '100009'--group by OUA_ID--ORDER BY OUA_ID ASC |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2012-03-22 : 21:04:56
|
if you format you code a bit by doing some indentation, you might see it much clearer. The line in red is out of place ?Also, you missed out all the alias for the derived table.FROM( --PROVIDER COUNT select distinct C.OUA_ID,C.PAYMENT_MTHD_COUNT,C.PROVIDER_CDE,C.PAYMENT_MTHD,C.ENROL_STATUS,C.SUBJECT_CDE, D.OUA_DISCIPLINE_CDE FROM ( SELECT * from ( SELECT OUA_ID, PAYMENT_MTHD,PROVIDER_CDE, ENROL_STATUS,SUBJECT_CDE, count(*) PAYMENT_MTHD_COUNT from OUA_ENROLMENT_MV GROUP BY OUA_ID, PAYMENT_MTHD, PROVIDER_CDE,ENROL_STATUS,SUBJECT_CDE ) as A ) c INNER JOIN ( SELECT * from ( select OUA_DISCIPLINE_CDE, SUBJECT_CDE from OUA_UNIT_VW group by OUA_ID, OUA_DISCIPLINE_CDE on C.OUA_ID = D.OUA_ID AND C.SUBJECT_CDE = D.SUBJECT_CDE ) as A )D) as A I wonder, does your original query runs at all ? Are you using MS SQL Server ? KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2012-03-22 : 21:07:00
|
oh just recalled, you are using Oracle. Maybe you can do that in Oracle, but you sure can't do that in MS SQL Server. KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
Chloe_19
Starting Member
44 Posts |
Posted - 2012-03-22 : 22:28:52
|
Original works fine.Am just trying to add nother variable but this time from the OUA_UNIT_VW table.I still get missing right perenthesis this time on the BOLND bracket in the last select statemnt. FROM( --PROVIDER COUNT select distinct C.OUA_ID,C.PAYMENT_MTHD_COUNT,C.PROVIDER_CDE,C.PAYMENT_MTHD,C.ENROL_STATUS,C.SUBJECT_CDE, D.OUA_DISCIPLINE_CDE FROM ( SELECT * from ( SELECT OUA_ID, PAYMENT_MTHD,PROVIDER_CDE, ENROL_STATUS,SUBJECT_CDE, count(*) PAYMENT_MTHD_COUNT from OUA_ENROLMENT_MV GROUP BY OUA_ID, PAYMENT_MTHD, PROVIDER_CDE,ENROL_STATUS,SUBJECT_CDE ) as A ) c INNER JOIN ( SELECT * from ( select OUA_DISCIPLINE_CDE, SUBJECT_CDE from OUA_UNIT_VW group by OUA_ID, OUA_DISCIPLINE_CDE on C.OUA_ID = D.OUA_ID AND C.SUBJECT_CDE = D.SUBJECT_CDE ) as A )D) as A |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2012-03-22 : 22:33:04
|
i didn't fixed it in my last post. I just highlighted the 2 lines in read that i think it is out of place. It suppose to be after the ") as D" INNER JOIN ( SELECT * from ( select OUA_DISCIPLINE_CDE, SUBJECT_CDE from OUA_UNIT_VW group by OUA_ID, OUA_DISCIPLINE_CDE on C.OUA_ID = D.OUA_ID AND C.SUBJECT_CDE = D.SUBJECT_CDE ) as A )D on C.OUA_ID = D.OUA_ID AND C.SUBJECT_CDE = D.SUBJECT_CDE KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
Chloe_19
Starting Member
44 Posts |
Posted - 2012-03-22 : 22:44:56
|
| Ohh ok, but still get the same error on the same line. |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2012-03-22 : 22:46:59
|
can you post the query that you used ? KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
Chloe_19
Starting Member
44 Posts |
Posted - 2012-03-22 : 23:05:01
|
Here is what i got and it works 100% fine.Select OUA_ID,Count(Case When PAYMENT_MTHD = 'CASH' Then 1 End) As CASH,Count(Case When PAYMENT_MTHD = 'Credit Card' Then 1 End) As "Credit Card",Count(Case When PAYMENT_MTHD = 'Cheque / Money Order' Then 1 End) "Cheque / Money Order",Count(Case When PAYMENT_MTHD = 'FEE-HELP' Then 1 End) "FEE-HELP",ROUND (COALESCE (MAX( DECODE( PAYMENT_MTHD, 'FEE-HELP', PAYMENT_MTHD_COUNT, NULL ) ), 0 ) * 100.0 / (COALESCE (MAX( DECODE( PAYMENT_MTHD, 'Credit Card', PAYMENT_MTHD_COUNT, NULL ) ), 0 )+ coalesce (max( DECODE( PAYMENT_MTHD, 'CASH', PAYMENT_MTHD_COUNT, null ) ), 0 )+ coalesce (max( DECODE( PAYMENT_MTHD, 'FEE-HELP', PAYMENT_MTHD_COUNT, null ) ), 0 )+ COALESCE (MAX( DECODE( PAYMENT_MTHD, 'Cheque / Money Order', PAYMENT_MTHD_COUNT, null ) ), 0 ))) "PAYMENT FEE-HELP %",Count(Case When PROVIDER_CDE = 'ACS' Then 1 End) As ACS , Count(Case When PROVIDER_CDE= 'ACU' Then 1 End) As ACU , Count(Case When PROVIDER_CDE = 'AITAF' Then 1 End) As AITF , Count( 1 ) As "Total_Enrolments" FROM(--PROVIDER COUNTselect distinctC.oua_id,c.PAYMENT_MTHD_COUNT,C.PROVIDER_CDE,C.PAYMENT_MTHD,C.ENROL_STATUSFROM(SELECT *FROM(SELECT OUA_ID, PAYMENT_MTHD,PROVIDER_CDE,ENROL_STATUS, count(*) PAYMENT_MTHD_COUNTFROM oua_enrolment_mv --WHERE Provider_cde = 'RMIT'GROUP BY OUA_ID, PAYMENT_MTHD, PROVIDER_CDE,ENROL_STATUS))c) WHERE OUA_ID = '100009'GROUP BY OUA_IDORDER BY OUA_ID ASC I am trying to add another INNER JOIN from a DIFFERENT TABLE to display another variable.I tried: INNER JOIN ( SELECT * from ( select OUA_DISCIPLINE_CDE, SUBJECT_CDE from OUA_UNIT_VW group by OUA_ID, OUA_DISCIPLINE_CDE But i get wrong perenthesis.(also if i add nother inner join from the oua_enrolment_mv Table (original) i get an added count to "Total_Enrolments")How do i avoid and put it in an different count column? |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2012-03-22 : 23:27:56
|
this part select OUA_DISCIPLINE_CDE, SUBJECT_CDE from OUA_UNIT_VW group by OUA_ID, OUA_DISCIPLINE_CDE should it be ?SELECT OUA_ID, SUBJECT_CDEFROM OUA_UNIT_VWGROUP BY OUA_ID, SUBJECT_CDE KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
Chloe_19
Starting Member
44 Posts |
Posted - 2012-03-22 : 23:31:18
|
| yes, |
 |
|
|
khtan
In (Som, Ni, Yak)
17689 Posts |
Posted - 2012-03-22 : 23:37:04
|
tryFROM( -- PROVIDER COUNT select distinct C.oua_id,c.PAYMENT_MTHD_COUNT,C.PROVIDER_CDE,C.PAYMENT_MTHD,C.ENROL_STATUS FROM ( SELECT * FROM ( SELECT OUA_ID, PAYMENT_MTHD,PROVIDER_CDE,ENROL_STATUS, count(*) PAYMENT_MTHD_COUNT FROM oua_enrolment_mv --WHERE Provider_cde = 'RMIT' GROUP BY OUA_ID, PAYMENT_MTHD, PROVIDER_CDE,ENROL_STATUS ) )C INNER JOIN ( SELECT * from ( SELECT OUA_ID, SUBJECT_CDE FROM OUA_UNIT_VW GROUP BY OUA_ID, SUBJECT_CDE ) )D on C.OUA_ID = D.OUA_ID AND C.SUBJECT_CDE = D.SUBJECT_CDE) KH[spoiler]Time is always against us[/spoiler] |
 |
|
|
Chloe_19
Starting Member
44 Posts |
Posted - 2012-03-22 : 23:51:33
|
UNIT Table does not contain oua_id. Can only be matched by Subject_cde (and if i add catalogue_no)(Subject_cde and Catalogue_no are in both tables (linked))I tried this and now i get not a single-group group function.Select OUA_ID,Count(Case When PAYMENT_MTHD = 'CASH' Then 1 End) As CASH,Count(Case When PAYMENT_MTHD = 'Credit Card' Then 1 End) As "Credit Card",Count(Case When PAYMENT_MTHD = 'Cheque / Money Order' Then 1 End) "Cheque / Money Order",Count(Case When PAYMENT_MTHD = 'FEE-HELP' Then 1 End) "FEE-HELP",ROUND (COALESCE (MAX( DECODE( PAYMENT_MTHD, 'FEE-HELP', PAYMENT_MTHD_COUNT, NULL ) ), 0 ) * 100.0 / (COALESCE (MAX( DECODE( PAYMENT_MTHD, 'Credit Card', PAYMENT_MTHD_COUNT, NULL ) ), 0 )+ coalesce (max( DECODE( PAYMENT_MTHD, 'CASH', PAYMENT_MTHD_COUNT, null ) ), 0 )+ coalesce (max( DECODE( PAYMENT_MTHD, 'FEE-HELP', PAYMENT_MTHD_COUNT, null ) ), 0 )+ COALESCE (MAX( DECODE( PAYMENT_MTHD, 'Cheque / Money Order', PAYMENT_MTHD_COUNT, null ) ), 0 ))) "PAYMENT FEE-HELP %",Count(Case When PROVIDER_CDE = 'ACS' Then 1 End) As ACS , Count(Case When PROVIDER_CDE= 'ACU' Then 1 End) As ACU , Count(Case When PROVIDER_CDE = 'AITAF' Then 1 End) As AITF , Count( 1 ) As "Total_Enrolments" FROM( -- PROVIDER COUNT select distinct C.oua_id,c.PAYMENT_MTHD_COUNT,C.PROVIDER_CDE,C.PAYMENT_MTHD,C.ENROL_STATUS,C.SUBJECT_CDE FROM ( SELECT * FROM ( SELECT OUA_ID, PAYMENT_MTHD,SUBJECT_CDE ,PROVIDER_CDE,ENROL_STATUS, count(*) PAYMENT_MTHD_COUNT FROM oua_enrolment_mv --WHERE Provider_cde = 'RMIT' GROUP BY OUA_ID, PAYMENT_MTHD, SUBJECT_CDE, PROVIDER_CDE, ENROL_STATUS ) )C INNER JOIN ( SELECT * from ( SELECT SUBJECT_CDE FROM OUA_UNIT_VW GROUP BY SUBJECT_CDE ) )D on C.SUBJECT_CDE = D.SUBJECT_CDE) |
 |
|
|
|
|
|