一個SQL語法_欄位中0值不取 |
尚未結案
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
請問各位大大
1.TA025 廠商 做群組動作
2.TA004 數量 SUM的動作
3.TA005 抽樣數 SUM的動作
4.TA006 不良數 COUNT的動作(ALL)
5.TA006 不良數 COUNT的動作(不等於0) 此部份SQL應該用何函數 SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006),
COUNT(TA006)//此TA006(不等於0)
GROUP BY TA025 doll_candy
------
doll_candy |
hungyulin
一般會員 發表:36 回覆:33 積分:13 註冊:2003-10-15 發送簡訊給我 |
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
引言: SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), aa=(Select Count(Ta006) from Table1 where Ta006<>0)//此TA006(不等於0) GROUP BY TA025 這樣應該可以這樣不行的(圖一) aa會是整個Table的count(不等於0)而不是group by 廠商 =================================================== ==所以aa需是group by TA025廠商==才可 doll_candy
------
doll_candy |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 因為在您的查詢之中, 涉及到單一資料表中出現兩個相同欄位的Count, 但后個Count又有查詢的限制, 所以用單一的資料表查詢方法就沒有辦法完成. 小弟覺得雙重子查詢可以達到您的要求, 試試如下: Select a.TA025, a.數量合計, a.抽樣數合計, a.不良品筆數1, b.不良品筆數2 From (Select TA025, Sum(TA004) 數量合計, Sum(TA005) 抽樣數合計, Count(TA006) 不良品筆數1 From 資料表名稱 Group By TA025) a, (Select TA025, Count(TA006) as 不良品筆數2 From 資料表名稱 Where TA006 <> 0 Group By TA025) b Where a.TA025=b.TA025 參考看看! =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 請問各位大大 1.TA025 廠商 做群組動作 2.TA004 數量 SUM的動作 3.TA005 抽樣數 SUM的動作 4.TA006 不良數 COUNT的動作(ALL) 5.TA006 不良數 COUNT的動作(不等於0) 此部份SQL應該用何函數 SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), COUNT(TA006)//此TA006(不等於0) GROUP BY TA025 doll_candyHi, 請問資料庫的種類, 若是 mssql 的話, 可以使用 case ... end 的語法來進行即可, 如: SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), SUM(case when TA006<>0 then 1 else 0 end) GROUP BY TA025 記得這類查詢是屬條件型集總計算, 所以可以使用 SUM (不是count, 因為是要計算 case 的結果值的合) 配合 case ... end 的方式來處理! |
shpeng
初階會員 發表:6 回覆:67 積分:49 註冊:2002-12-21 發送簡訊給我 |
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
引言:感謝您,我的資料庫是MS_SQL所以可以用 測試後OK doll_candy引言: 請問各位大大 1.TA025 廠商 做群組動作 2.TA004 數量 SUM的動作 3.TA005 抽樣數 SUM的動作 4.TA006 不良數 COUNT的動作(ALL) 5.TA006 不良數 COUNT的動作(不等於0) 此部份SQL應該用何函數 SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), COUNT(TA006)//此TA006(不等於0) GROUP BY TA025 doll_candyHi, 請問資料庫的種類, 若是 mssql 的話, 可以使用 case ... end 的語法來進行即可, 如: SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), SUM(case when TA006<>0 then 1 else 0 end) GROUP BY TA025 記得這類查詢是屬條件型集總計算, 所以可以使用 SUM (不是count, 因為是要計算 case 的結果值的合) 配合 case ... end 的方式來處理!
------
doll_candy |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |