PCDVD數位科技討論區

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)

jenxxx 2006-02-10 02:02 PM

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

aln761 2006-02-10 02:29 PM

引用:
作者gunnertako
我記得改datatime好像不用轉格式的樣子


哇!!解出來了!!
感謝火星人大大及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 名稱

fantasyj 2006-02-10 03:21 PM

你用的語法還是有點不太正確,
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這兩種的差別, 有空也可以玩玩看

給你的小小建議@@

cxh 2006-02-10 04:42 PM

名稱部份,請用英文吧,不然,中文若是少一個點,你會找到發瘋..
你還打 '戊' ,萬一打成 '戌' ,還是 '戍',你會........ :stupefy:


所有的時間均為GMT +8。 現在的時間是06:59 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。