全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1260
推到 Plurk!
推到 Facebook!

請叫一個SQL語法問題

尚未結案
doong
一般會員


發表:8
回覆:4
積分:2
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-15 17:59:05 IP:139.175.xxx.xxx 未訂閱
若我有一個TABLE資料如下 品名      領用類別       數量 A            01           5 A            02           10 B            03           5 C            01           5 C            03           10      我想BY品名及類別作數量加總產生一個如下的報表,我該如如作呢 品名     01類別            02類別           03類別 A        01類別加總數量    02類別加總數量   03類別加總數量 B        01類別加總數量    02類別加總數量   03類別加總數量 C        01類別加總數量    02類別加總數量   03類別加總數量    有沒有辦法可以直接用SQL語法產生這樣的查詢,若沒有要怎麼作呢
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-15 18:07:41 IP:218.32.xxx.xxx 未訂閱
類別有固定幾種嗎 ? 如果沒有, 一個 SQL 恐怕粉難.
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-15 19:37:05 IP:61.155.xxx.xxx 未訂閱
((select 品名,(領用類別+char(數量)) as 01類別 where   領用類別='01' group by 品名) as pm01 left jion (select 品名,(領用類別+char(數量)) as 02類別 where   領用類別='02' group by 品名) as pm02 on pm01.品名=pm02.品名 )  as pm left jion (select 品名,(領用類別+char(數量)) as 02類別 where   領用類別='02' group by 品名) as pm03 on pm.品名=pm03.品名    风花雪月 e梦情缘
------
风花雪月 e梦情缘
timhuang
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-15 20:59:36 IP:61.221.xxx.xxx 未訂閱
若是 [領用類別] 只有三種(固定數)的話, 可以這樣下.
select 品名, 
       sum(case 領用類別 when '01' then 數量 else 0 end) as "01類別", 
       sum(case 領用類別 when '02' then 數量 else 0 end) as "02類別", 
       sum(case 領用類別 when '03' then 數量 else 0 end) as "03類別"
   from t1 group by 品名
否則是一種轉置的 table 沒辦法用一道 sql 來取得.
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-15 21:11:46 IP:218.32.xxx.xxx 未訂閱
如果類別固定只要 01/02及03, SQL :
select distinct a.品名,
(select isnull(sum(數量),0) from ttt where 領用類別='01' and 品名=a.品名) as "01類別加總數量",
(select isnull(sum(數量),0) from ttt where 領用類別='02' and 品名=a.品名) as "02類別加總數量",
(select isnull(sum(數量),0) from ttt where 領用類別='03' and 品名=a.品名) as "03類別加總數量"
from ttt a
ttt 是你的 Table Name. 如果類別不固定, 則可先 1. select distinct 領用類別 from ttt 2. 依據 1. 的結果去組合 SQL ps. 1. 我是用 MSSQL 2000 測試, 請教 wnhoo 兄是用何種資料庫 ? 小弟學淺看不出來 2. MSSQL 針對一個 SQL 有使用 sub-query 數量的限制, 好像是 16 個... 不知各位高手, 可否改為 join 方式, 不過MSSQL 針對一個 SQL 使用 table 數量好像也有限制
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-16 07:12:29 IP:61.155.xxx.xxx 未訂閱
Mickey兄:    我使用的是IBM DB2数据库,其实关于JION操作,象SQL SERVER等大型数据库也是支持的。    我上面用了个LEFT JION方式实现doong兄的操作的。    风花雪月 e梦情缘
------
风花雪月 e梦情缘
doong
一般會員


發表:8
回覆:4
積分:2
註冊:2002-03-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-16 11:02:06 IP:139.175.xxx.xxx 未訂閱
謝謝大家的幫忙我的問題解決了 感恩阿
系統時間:2024-06-30 5:53:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!