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

UNION 的問題(有更好的作法嗎? 懇請告知)

答題得分者是:andersonhsieh
firefall
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-11 15:03:20 IP:61.70.xxx.xxx 未訂閱
請問各位先進: 解說如下: 有個單一表格A(全年度)中含 [出貨日期][貨品類別][貨品編號][出貨數量] 小弟想得到七、八月份的出貨統計如下 [貨品編號]][貨品類別][七月出貨量]][八月出貨量]][本貨品全部出貨量] 由於是單一表格,小弟用自連方式取得,用QUERY宣告如下 SELECT 貨品編號,貨品類別,SUM(出貨數量) AS 七月出貨量,0 AS 八月出貨量,0 AS 本貨品全部出貨量 FROM A WHERE (EXTRACT(MONTH FROM 出貨日期)=7) GROUP BY 貨品編號,貨品類別 UNION SELECT 貨品編號,貨品類別,0 AS 七月出貨量,SUM(出貨數量) AS 八月出貨量,0 AS 本貨品全部出貨量 FROM A WHERE (EXTRACT(MONTH FROM 出貨日期)=8) GROUP BY 貨品編號,貨品類別 UNION SELECT 貨品編號,貨品類別,0 AS 七月出貨量,0AS 八月出貨量, SUM(出貨數量) AS 本貨品全部出貨量 FROM A GROUP BY 貨品編號,貨品類別 可得出小弟要的格式,但問題出現了,小弟RUN 後結果如下 [貨品編號]][貨品類別][七月出貨量]][八月出貨量]][本貨品全部出貨量] [A0001] [2] [132] [0] [0] [A0001] [2] [0] [276] [0] [A0001] [2] [0] [0] [1439] . . . 請問各位先進該如何把上述的三個列合為一列 或是有更好的作法請告知小弟, 謝謝!!
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-11 16:49:26 IP:211.20.xxx.xxx 未訂閱
SELECT A9.貨品編號,A9.貨品類別, A7.七月出貨量,A8.八月出貨量,A9.本貨品全部出貨量 FROM (SELECT 貨品編號,貨品類別,SUM(出貨數量) AS 七月出貨量 FROM A WHERE (EXTRACT(MONTH FROM 出貨日期)=7) GROUP BY 貨品編號,貨品類別) A7, (SELECT 貨品編號,貨品類別, SUM(出貨數量) AS 八月出貨量 FROM A WHERE (EXTRACT(MONTH FROM 出貨日期)=8) GROUP BY 貨品編號,貨品類別) A8, (SELECT 貨品編號,貨品類別, SUM(出貨數量) AS 本貨品全部出貨量 FROM A GROUP BY 貨品編號,貨品類別) A9 WHERE A7.貨品編號 = A9.貨品編號 AND A7.貨品類別 = A9.貨品類別 AND A8.貨品編號 = A9.貨品編號 AND A8.貨品類別 = A9.貨品類別 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
firefall
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-11 19:14:16 IP:61.70.xxx.xxx 未訂閱
引言: SELECT A9.貨品編號,A9.貨品類別, A7.七月出貨量,A8.八月出貨量,A9.本貨品全部出貨量 FROM (SELECT 貨品編號,貨品類別,SUM(出貨數量) AS 七月出貨量 FROM A WHERE (EXTRACT(MONTH FROM 出貨日期)=7) GROUP BY 貨品編號,貨品類別) A7, (SELECT 貨品編號,貨品類別, SUM(出貨數量) AS 八月出貨量 FROM A WHERE (EXTRACT(MONTH FROM 出貨日期)=8) GROUP BY 貨品編號,貨品類別) A8, (SELECT 貨品編號,貨品類別, SUM(出貨數量) AS 本貨品全部出貨量 FROM A GROUP BY 貨品編號,貨品類別) A9 WHERE A7.貨品編號 = A9.貨品編號 AND A7.貨品類別 = A9.貨品類別 AND A8.貨品編號 = A9.貨品編號 AND A8.貨品類別 = A9.貨品類別 @@~~飛翔在天際的精靈~~@@
報告版主大大 小弟用Query下達大大的指令,發現它不吃from (Select...) a7,(...)a8,(...) a9 where ... 會出現錯誤訊息,不懂耶!!!?? 感謝版主大大
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-11 19:32:02 IP:211.23.xxx.xxx 未訂閱
什麼錯誤訊息 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
firefall
一般會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-09-11 19:45:01 IP:61.70.xxx.xxx 未訂閱
引言: 什麼錯誤訊息 @@~~飛翔在天際的精靈~~@@
報告版主大大 錯誤信息如下 ..... EDBEngineError with message Invaild use of keyword. Token (select line Number:=2 ....... 小弟想該不會小弟的sql不支援這語法吧,小弟用delphi的paradox下query 指令
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-09-11 20:09:25 IP:211.23.xxx.xxx 未訂閱
看樣應該是不支援這樣的語法,因為這樣的語法的server級的daabase可以用 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
firefall
一般會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-09-11 20:28:31 IP:61.70.xxx.xxx 未訂閱
報告版主大大: 是否在單機版上,這個問題就無法用SQL解決!? 如果無法解決,那麼可不可以教教小弟如何可以用程式碼把小弟一開始下UNION 的三列合併成一列。 感謝版主大大指導小弟, 麻煩您了~~謝謝大大
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-09-11 20:53:25 IP:211.23.xxx.xxx 未訂閱
建議你一種用DELPHI元件方式作,用二個QUERY QUERY1 SELECT 貨品編號,貨品類別, SUM(出貨數量) AS 本貨品全部出貨量 FROM A GROUP BY 貨品編號,貨品類別 QUERY1新增二個Calculated的欄位假設為FIELD1,FIELD2 在ONCalcFields寫入以下程式碼 QUERY2.CLOSE; QUERY2.SQL.TEXT := 'SELECT SUM(出貨數量) AS 七月出貨量 FROM A WHERE ' '(EXTRACT(MONTH FROM 出貨日期)=7) ' 'WHERE 貨品編號 = ' QuotedStr(QUERY1.FieldByName(貨品編號).AsString) 'AND 貨品類別 = ' QuotedStr(QUERY1.FieldByName(貨品類別).AsString) ' GROUP BY 貨品編號,貨品類別'; QUERY2.OPEN; QUERY1.FieldByName('FIELD1').AsString := QUERY2.FieldS[0].AsString; QUERY2.CLOSE; QUERY2.SQL.TEXT := 'SELECT SUM(出貨數量) AS 八月出貨量 FROM A WHERE ' '(EXTRACT(MONTH FROM 出貨日期)=8) ' 'WHERE 貨品編號 = ' QuotedStr(QUERY1.FieldByName(貨品編號).AsString) 'AND 貨品類別 = ' QuotedStr(QUERY1.FieldByName(貨品類別).AsString) ' GROUP BY 貨品編號,貨品類別'; QUERY2.OPEN; QUERY1.FieldByName('FIELD2').AsString := QUERY2.FieldS[0].AsString; QUERY2.CLOSE; 以上這樣雖然麻煩但卻可以達成你的的需求 @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
firefall
一般會員


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-09-11 21:48:50 IP:61.70.xxx.xxx 未訂閱
謝謝版主大大 多謝版主細心指導,真令小弟感動,在此感謝版主大大的辛勞 多謝了,大大~~謝謝您
系統時間:2024-05-05 6:22:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!