| Author |
Topic |
|
Sonu619
Posting Yak Master
202 Posts |
Posted - 2011-07-13 : 13:19:07
|
| Here is my source table:ID C_NO L_VALUE B_VALUE1 1 200 3001 2 500 1001 1 200 300And My end should be like this ID L_VALUE B_VALUE1 700 400Here is query that I am using Select SUM(L_VALUE), SUM(B_VALUE) FROM (SELECT DISTINCT ID,C_NO FROM MYTABLE GROUP BY ID,C_NO)Msg 102, Level 15, State 1, Line 5Incorrect syntax near ')'.AND here is the error message that I am getting. Please guide me where I am wrong. Thanks for help. |
|
|
robvolk
Most Valuable Yak
15732 Posts |
Posted - 2011-07-13 : 13:24:07
|
| SELECT ID, SUM(L_VALUE) L_VALUE, SUM(B_VALUE) B_VALUEFROM myTableGROUP BY ID |
 |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
Sonu619
Posting Yak Master
202 Posts |
Posted - 2011-07-13 : 14:00:15
|
| Thank you guys for reply, i tried both query that you suggest, tkizer query giving me error and robvolk query run fine but end result not what i want, here is my tweak -- FIRST STEP SELECT DISTINCT C_NO,ID,L_VALUE,B_VALUE INTO NEW_TABLE FROM MYTABLE GROUP BY IDE,C_NO,L_VALUE,B_VALUE-- SECOND STEPSELECT ID,SUM(L_VALUE) L_VALUE,SUM(B_VALUE) B_VALUE INTO NEW_TABLE1 FROM NEW_TABLE GROUP BY IDPlease guide me if i can use step1 and step2 in one single statement, Thanks. |
 |
|
|
robvolk
Most Valuable Yak
15732 Posts |
Posted - 2011-07-13 : 14:16:58
|
| I think you want:SELECT ID, SUM(DISTINCT L_VALUE) L_VALUE, SUM(DISTINCT B_VALUE) B_VALUEFROM myTableGROUP BY ID |
 |
|
|
Sonu619
Posting Yak Master
202 Posts |
Posted - 2011-07-13 : 14:29:04
|
| Thanks its works fine, awesome, just for queresty if the data is like this ID C_NO L_VALUE B_VALUE1 1 200 3001 2 200 1001 1 200 300and my end result should be ID L_VALUE B_VALUE1 400 400How i can handel because my C-NO is differentSELECT ID, DISTINCT C_NO,SUM(DISTINCT L_VALUE) L_VALUE,SUM(DISTINCT B_VALUE) B_VALUEFROM MYTABLEGROUP BY ID And i am getting error, Could you please guide me where i am wrong. Thanks. |
 |
|
|
robvolk
Most Valuable Yak
15732 Posts |
Posted - 2011-07-13 : 14:41:48
|
| You can't include C_NO in the SELECT list unless you also add it to the GROUP BY clause. It's also usually pointless to use DISTINCT with GROUP BY, as GROUP BY will remove duplicates as DISTINCT does. |
 |
|
|
Sonu619
Posting Yak Master
202 Posts |
Posted - 2011-07-13 : 14:54:55
|
| SELECT ID,SUM(DISTINCT L_VALUE) L_VALUE,SUM(DISTINCT B_VALUE) B_VALUEFROM MYTABLEGROUP BY ID,C_NOI am getting this resultID L_VALUE B_VALUE1 200 3001 200 100But it should be ID L_VALUE B_VALUE1 400 400Am i missing something? |
 |
|
|
robvolk
Most Valuable Yak
15732 Posts |
Posted - 2011-07-13 : 15:01:18
|
| ;WITH a(ID, C_NO, L_VALUE, B_VALUE) AS (SELECT DISTINCT ID, C_NO, L_VALUE, B_VALUE FROM myTable)SELECT ID, SUM(L_VALUE) L_VALUE, SUM(B_VALUE) B_VALUE FROM a |
 |
|
|
Sonu619
Posting Yak Master
202 Posts |
Posted - 2011-07-13 : 15:06:25
|
| AWESOME WORK FINE, Just want to give you update, made minnor change to run this query ;WITH a(ID, C_NO, L_VALUE, B_VALUE) AS (SELECT DISTINCT ID, C_NO, L_VALUE, B_VALUE FROM myTable)SELECT ID, SUM(L_VALUE) L_VALUE, SUM(B_VALUE) B_VALUE FROM aGROUP BY A.PINThnaks for help! |
 |
|
|
|