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

請教 sql sum的奇怪用法

 
firefall
一般會員


發表:22
回覆:36
積分:11
註冊:2002-05-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-07-01 15:41:29 IP:61.70.xxx.xxx 未訂閱
請問各位先進,前輩 若有一個table 有三個欄位如 (1)貨物編號 (2)類別 (3)是否出貨 a000001 a y a000002 a y a000003 a y a000004 a n b000001 b y b000002 b y b000003 b n b000004 b n 小弟用 select count(是否出貨) as 出貨數 from product group by 類別 where 是否出貨 = y 能得到出貨數,但如何下sql 能得到 類別 出貨數 存貨數 總數 a 3 1 4 b 2 2 4 小弟用count試了很多次,但只能得到固定的一欄(出貨數or 總數..),啊 !!!!天那
wenjung
一般會員


發表:21
回覆:61
積分:21
註冊:2002-04-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-07-02 12:50:26 IP:210.71.xxx.xxx 未訂閱
試一下 select 類別,sum(是否出貨) as 出貨數 ,存貨數, 總數 from product, (請加上存有'存貨數, 總數'的table) where ..... group by 類別,存貨數, 總數 若看不懂再問 !!!
firefall
一般會員


發表:22
回覆:36
積分:11
註冊:2002-05-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-07-03 03:08:41 IP:61.70.xxx.xxx 未訂閱
謝謝大大,小弟試試看
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-07-19 23:43:00 IP:203.204.xxx.xxx 未訂閱
引言: 請問各位先進,前輩 若有一個table 有三個欄位如 (1)貨物編號 (2)類別 (3)是否出貨 a000001 a y a000002 a y a000003 a y a000004 a n b000001 b y b000002 b y b000003 b n b000004 b n 小弟用 select count(是否出貨) as 出貨數 from product group by 類別 where 是否出貨 = y 能得到出貨數,但如何下sql 能得到 類別 出貨數 存貨數 總數 a 3 1 4 b 2 2 4 小弟用count試了很多次,但只能得到固定的一欄(出貨數or 總數..),啊 !!!!天那
Hi, 你可以用 when .... end 的語法, 你的 case 可以用 以下的 query 來處理: select left(貨物編號, 1) as 類別, sum(when 是否出貨 case 'y' then 1 else 0 end) as 出貨數, sum(when 是否出貨 case 'n' then 1 else 0 end) as 存貨數, count(*) as 總數 from table_name group by left(貨物編號, 1) 即可得到你要的結果, 試試看...
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-07-19 23:46:00 IP:203.204.xxx.xxx 未訂閱
Hi, 哈, 剛沒注意你已經有 [類別] 欄位, 所以用 left(貨物編號, 1) 來 替代, 所以 query 可以改為: select 類別, sum(when 是否出貨 case 'y' then 1 else 0 end) as 出貨數, sum(when 是否出貨 case 'n' then 1 else 0 end) as 存貨數, count(*) as 總數 from table_name group by 類別
系統時間:2024-11-25 9:40:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!