![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 疑難雜症區
(https://www.pcdvd.com.tw/forumdisplay.php?f=34)
- - 請教SQL達人......一個有關 UNION 的語法問題
(https://www.pcdvd.com.tw/showthread.php?t=590394)
|
|---|
select * from (
SELECT '戊' 名稱,SUM(數量) 數量,SUM(總金額) 總金額 FROM A WHERE 日期 = TO_DATE(20060210,'YYYYMMDD') AND (名稱='甲' OR 名稱='乙') GROUP BY '戊' ) as A1 union all select * from ( SELECT 名稱,SUM(數量) 數量,SUM(總金額) 總金額 FROM A WHERE 日期 = TO_DATE(20060210,'YYYYMMDD') AND 名稱<>'甲' AND 名稱<>'乙' GROUP BY 名稱) as A2 |
引用:
哇!!解出來了!! 感謝火星人大大及CXH大大 gunnertako大大及CyberERIC大大 還有JENXXX大大:cry: 我愛你們~~THANK YOU>___< 剛剛亂測了一通 發覺是DATATYPE的問題 將語法改成↓就可以了。 (謎之聲:看來還是要多讀點書呀>_<) SELECT 戊 名稱,SUM(數量) 數量,SUM(總金額) 總金額 FROM A WHERE 日期 = TO_DATE(20060210,'YYYYMMDD') AND (名稱='甲' OR 名稱='乙') GROUP BY 戊 UNION SELECT 名稱,SUM(數量) 數量,SUM(總金額) 總金額 FROM A WHERE 日期 = TO_DATE(20060210,'YYYYMMDD') AND 名稱<>'甲' AND 名稱<>'乙' GROUP BY 名稱 |
你用的語法還是有點不太正確,
SELECT '戊' 名稱,SUM(數量) 數量,SUM(總金額) 總金額 FROM A WHERE 日期 = TO_DATE('20060210','YYYYMMDD') AND (名稱='甲' OR 名稱='乙') UNION ALL SELECT 名稱,SUM(數量) 數量,SUM(總金額) 總金額 FROM A WHERE 日期 = TO_DATE('20060210','YYYYMMDD') AND 名稱<>'甲' AND 名稱<>'乙' GROUP BY 名稱 首先是上面那一段, '戊' 是你使用字串的方式, 而不是原TABEL的欄位, 所以並不需要下GROUY BY 的語法, 還有你使用TO_DATE這個語法, 括弧裡面使用的日期必須加上單引號以字串來處理, 如上面TO_DATE('20060210','YYYYMMDD'), 有時候或許直接執行SQL不會發生錯誤, 但是如果有玩到EPR的FORM或REPORT的階段時, 錯誤就會產生了..... PS:還有UNION與UNION ALL這兩種的差別, 有空也可以玩玩看 給你的小小建議@@ |
名稱部份,請用英文吧,不然,中文若是少一個點,你會找到發瘋..
你還打 '戊' ,萬一打成 '戌' ,還是 '戍',你會........ :stupefy: |
| 所有的時間均為GMT +8。 現在的時間是06:59 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。