線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1932
推到 Plurk!
推到 Facebook!

一個SQL語法_欄位中0值不取

尚未結案
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-06 14:09:10 IP:61.218.xxx.xxx 未訂閱
請問各位大大 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-07 10:34:49 IP:203.70.xxx.xxx 未訂閱
SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), aa=(Select Count(Ta006) from Table1 where Ta006<>0)//此TA006(不等於0) GROUP BY TA025 這樣應該可以
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-07 11:18:06 IP:61.218.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-07 18:22:12 IP:218.160.xxx.xxx 未訂閱
Hi doll_candy 您好: SQL 最後一行加上 Having Count(TA006) <> 0 試試 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-11 17:22:43 IP:61.218.xxx.xxx 未訂閱
引言: Hi doll_candy 您好: SQL 最後一行加上 Having Count(TA006) <> 0 試試 我不是高手, 高手是正在銀幕前微笑的人.
這是不行的,因為只有在欄5[aa]是<>0之資料,其他都是all資料, group by 欄1[TA025] doll_candy
------
doll_candy
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-11 23:28:18 IP:63.84.xxx.xxx 未訂閱
您好!    因為在您的查詢之中, 涉及到單一資料表中出現兩個相同欄位的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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-12 00:19:43 IP:61.62.xxx.xxx 未訂閱
引言: 請問各位大大 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
Hi, 請問資料庫的種類, 若是 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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-12 08:51:32 IP:61.219.xxx.xxx 未訂閱
SELECT TA025,SUM(TA004) sTA004,SUM(TA005) sTA005,COUNT(TA006), SUM(CASE WHEN TA006 <> 0 THEN 1 END)//此TA006(不等於0) GROUP BY TA025 ==取之於斯,用之於斯==
------
==取之於斯,用之於斯==
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-13 10:23:12 IP:61.218.xxx.xxx 未訂閱
引言:
引言: 請問各位大大 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
Hi, 請問資料庫的種類, 若是 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 的方式來處理!
感謝您,我的資料庫是MS_SQL所以可以用 測試後OK doll_candy
------
doll_candy
系統時間:2024-05-19 15:43:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!