2013-05-13 195 views
0
SELECT WK_NBR,region_cd,plant_cd, POS_GAP_1DAY 
    FROM(SELECT wk_nbr,region_cd,plant_cd, 
     round((CASE WHEN SUM(gap_1day)>0 THEN SUM(gap_1day) ELSE 0 END ),2) AS POS_GAP_1DAY 
     FROM 
     table a 
     group by wk_nbr,region_cd,plant_cd) 

解決集團在上面的查詢中,我面臨的問題是POS_GAP_1DAY應該總結只有在列,但上面的查詢正數不會得到正確的答案,因爲我查SUM(gap_1day)>0需要通過

問題是我只需要分組wk_nbr,region_cd,plant_cd

請建議

回答

2

進行當場,所以我不知道,如果它的工作原理,但...

SELECT wk_nbr,region_cd,plant_cd, 
     round(SUM(CASE WHEN GAP_1DAY>0 then GAP_1DAY else 0 end),2) AS POS_GAP_1DAY 
    FROM 
    table a 
    group by wk_nbr,region_cd,plant_cd 

你想要的東西沒有做?

+0

:是的,它:(我是新來的SQL太謝謝你了 – MKN 2013-05-13 08:18:59

+2

只是一個快速的注意..外部選擇是多餘的具體案例 – Davide 2013-05-13 08:21:22

3

嘗試改變

round((CASE WHEN SUM(gap_1day)>0 THEN SUM(gap_1day) ELSE 0 END ),2) AS POS_GAP_1DAY 

ROUND(SUM(CASE WHEN SIGN(gap_1day) > 0 THEN gap_1day ELSE 0 END), 2) AS POS_GAP_1DAY 
+0

非常感謝。它的工作原理:) – MKN 2013-05-13 08:20:15

+0

@Mani不客氣。很高興幫助:D。正如Davide絕對正確評論的那樣,你的外部選擇似乎是多餘的。因此,如果你沒有做任何其他的查詢擺脫它。 – peterm 2013-05-13 08:26:57