![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 疑難雜症區
(https://www.pcdvd.com.tw/forumdisplay.php?f=34)
- - SQL語法,謝謝!
(https://www.pcdvd.com.tw/showthread.php?t=632918)
|
|---|
引用:
select 產品代號.產品代號,產品資料表.產品名稱,預估資料表.預估產品數量,訂單資料表.訂單數量 from 產品資料表 inner join (預估資料表 inner join 訂單資料表 on 預估資料表.廠商代號=訂單資料表.廠商代號)on產品資料表.產品代號=預估資料表.產品代號 我只教你如何合併.. 因為我不是你公司的人 我不知道你要查訊是什麼結果.. 合併語法我一陣子沒用了..你試試看吧.. 我手邊沒書..也不敢跟你確定正確性.. 如果錯誤別怪我喔.. 如果可以你把問題和需求說清楚一點..我如果會就幫你一下.. |
select 產品代號.產品代號,產品資料表.產品名稱,sum(預估資料表.預估產品數量)as預估產品數量 ,sum(訂單資料表.訂單數量)as實際產品數量
from 產品資料表 inner join (預估資料表 inner join 訂單資料表 on 預估資料表.廠商代號=訂單資料表.廠商代號)on產品資料表.產品代號=預估資料表.產品代號 group by 產品代號.產品代號 這樣呢??(應該是錯的吧..) 我是有點想加 distinct 會的人也出來教一下吧,, 因為小弟也很有興趣...(在等世界盃前的遊戲∼) |
沒有明確的Table Schema跟報表要呈現的欄位說明,根本就沒辦法下手.... :flash:
要大家幫忙,你還是把需求說的明確點吧.. :think: |
select p.產品代號, p.產品名稱,
(select sum(s.預估產品數量) from 預估資料表 as s where s.產品代號=p.產品代號) as 預估數量, (select sum(o.訂單數量) from 訂單資料表 as o where o.產品代號=p.產品代號) as 訂單量 from 產品資料表 as p order by p.產品代號 |
搞不懂為什麼又要問key又要問table schema的....以他的問題來說....
即使不知道應該也可以做出來吧.... 用group的方式 select p.產品代號, p.產品名稱, sum(s.預估產品數量) as 預估產量, sum(o.訂單數量) as 訂單量 from 產品資料表 p left outer join 預估資料表 as s on s.產品代號=p.產品代號 left outer join 訂單資料表 as o on o.產品代號=p.產品代號 group by p.產品代號 order by p.產品代號 不用group的方式 select p.產品代號, p.產品名稱, (select sum(s.預估產品數量) from 預估資料表 as s where s.產品代號=p.產品代號) as 預估數量, (select sum(o.訂單數量) from 訂單資料表 as o where o.產品代號=p.產品代號) as 訂單量 from 產品資料表 as p order by p.產品代號 |
引用:
把問題和Table Schema講清楚,大家才好幫你。像原先並沒有提到“訂單的key是流水號”,大家只能在那兒瞎猜,就算寫出了SQL程式,也不一定能在你的資料庫中正確執行。 就是希望你能早日成為高手,所以才說“SQL留給樓主當習題”。直接給答案,你省事,我也省事,但你就失去了一次學習的機會了。 先讀一下書上sum() 和 group by的說明和範例,想一想資料表間的關連。 如果你覺得三個資料表太複雜,先想如何用兩個資料表做出某個產品的訂單數量,然後如何再加入第三個資料表做出某個產品的預估訂單數量。 |
引用:
Table Schema敘述不明確,又沒有ERD或Class Diagram,如何了解這些Entity間的關連?這樣盲目的寫出SQL,說實話猶如大海撈針,矇對了算運氣... :think: |
引用:
我想您可能要為樓主解釋一下為什麼要用 outer join 的原因,樓主大概會對用 outer join 感到困惑。(純是個人推測,如果樓主已經知道用 outer join 的原因,請見諒。) |
我是希望產生像下圖一樣的報表
第一個欄位是個key(產品代號) 由於手上沒有公司的資料庫 所以也無法測試 謝謝大家 PS.第三個欄位和第四個欄位,一定要用sum |
select distinct產品代號.產品代號,產品資料表.產品名稱,sum(預估資料表.預估產品數量)as預估產品數量 ,sum(訂單資料表.訂單數量)as實際產品數量
from 產品資料表 inner join (預估資料表 inner join 訂單資料表 on 預估資料表.廠商代號=訂單資料表.廠商代號)on產品資料表.產品代號=預估資料表.產品代號 group by 產品代號.產品代號 order by 產品代號.產品代號 |
| 所有的時間均為GMT +8。 現在的時間是09:15 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2026。