請教 sql sum的奇怪用法 |
|
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
請問各位先進,前輩
若有一個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 發送簡訊給我 |
|
firefall
一般會員 發表:22 回覆:36 積分:11 註冊:2002-05-14 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 請問各位先進,前輩 若有一個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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |