PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 疑難雜症區
帳戶
密碼
 

  回應
 
主題工具
boaboa
Major Member
 

加入日期: Nov 2004
您的住址: 竹北
文章: 206
引用:
作者mor8
我用的資料庫是sql server
三個資料表分別叫作
產品資料表(產品代號、產品名稱)
預估資料表(廠商代號、產品代號、預估產品數量)
訂單資料表(廠商代號、產品代號、訂單數量)
請問:
我要將此三個資料表合併
寫出一個報表
而報表要有下面這些欄位資料
產品代號、產品名稱、預估產品數量、訂單數量
謝謝

select 產品代號.產品代號,產品資料表.產品名稱,預估資料表.預估產品數量,訂單資料表.訂單數量

from 產品資料表 inner join (預估資料表 inner join 訂單資料表 on 預估資料表.廠商代號=訂單資料表.廠商代號)on產品資料表.產品代號=預估資料表.產品代號





我只教你如何合併..
因為我不是你公司的人
我不知道你要查訊是什麼結果..

合併語法我一陣子沒用了..你試試看吧..

我手邊沒書..也不敢跟你確定正確性..
如果錯誤別怪我喔..

如果可以你把問題和需求說清楚一點..我如果會就幫你一下..
     
      
__________________
Put your hands on your conscience!
And you say:you accept that!

此文章於 2006-06-30 09:35 PM 被 boaboa 編輯.
舊 2006-06-30, 09:33 PM #11
回應時引用此文章
boaboa離線中  
boaboa
Major Member
 

加入日期: Nov 2004
您的住址: 竹北
文章: 206
select 產品代號.產品代號,產品資料表.產品名稱,sum(預估資料表.預估產品數量)as預估產品數量 ,sum(訂單資料表.訂單數量)as實際產品數量

from 產品資料表 inner join (預估資料表 inner join 訂單資料表 on 預估資料表.廠商代號=訂單資料表.廠商代號)on產品資料表.產品代號=預估資料表.產品代號

group by 產品代號.產品代號


這樣呢??(應該是錯的吧..)
我是有點想加 distinct
會的人也出來教一下吧,,

因為小弟也很有興趣...(在等世界盃前的遊戲∼)
 
__________________
Put your hands on your conscience!
And you say:you accept that!
舊 2006-06-30, 10:10 PM #12
回應時引用此文章
boaboa離線中  
Ericchu
Senior Member
 
Ericchu的大頭照
 

加入日期: Dec 2000
您的住址: 休伯利安艦橋
文章: 1,388
沒有明確的Table Schema跟報表要呈現的欄位說明,根本就沒辦法下手....

要大家幫忙,你還是把需求說的明確點吧..
__________________

~三十年來尋刀劍,幾回落葉又抽枝,自從一見桃花後.直至如今更不疑~
燦坤卡號:34951536
My Blog:http://blog.xuite.net/eric15820/devileric
舊 2006-06-30, 10:15 PM #13
回應時引用此文章
Ericchu離線中  
穩ㄝ
Major Member
 

加入日期: Oct 2005
您的住址: 淡水
文章: 131
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.產品代號
舊 2006-06-30, 10:44 PM #14
回應時引用此文章
穩ㄝ離線中  
穩ㄝ
Major Member
 

加入日期: Oct 2005
您的住址: 淡水
文章: 131
搞不懂為什麼又要問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.產品代號
舊 2006-06-30, 10:52 PM #15
回應時引用此文章
穩ㄝ離線中  
kec
Major Member
 
kec的大頭照
 

加入日期: Feb 2004
您的住址: Terran Empire
文章: 283
引用:
作者mor8
我就是因為不知道
所以才上來問
請教一下吧!
對高手來說
是很容易
對初學者來說
是很難的

把問題和Table Schema講清楚,大家才好幫你。像原先並沒有提到“訂單的key是流水號”,大家只能在那兒瞎猜,就算寫出了SQL程式,也不一定能在你的資料庫中正確執行。

就是希望你能早日成為高手,所以才說“SQL留給樓主當習題”。直接給答案,你省事,我也省事,但你就失去了一次學習的機會了。

先讀一下書上sum() 和 group by的說明和範例,想一想資料表間的關連。
如果你覺得三個資料表太複雜,先想如何用兩個資料表做出某個產品的訂單數量,然後如何再加入第三個資料表做出某個產品的預估訂單數量。
舊 2006-06-30, 11:08 PM #16
回應時引用此文章
kec離線中  
Ericchu
Senior Member
 
Ericchu的大頭照
 

加入日期: Dec 2000
您的住址: 休伯利安艦橋
文章: 1,388
引用:
作者穩ㄝ
搞不懂為什麼又要問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敘述不明確,又沒有ERD或Class Diagram,如何了解這些Entity間的關連?這樣盲目的寫出SQL,說實話猶如大海撈針,矇對了算運氣...
__________________

~三十年來尋刀劍,幾回落葉又抽枝,自從一見桃花後.直至如今更不疑~
燦坤卡號:34951536
My Blog:http://blog.xuite.net/eric15820/devileric
舊 2006-06-30, 11:35 PM #17
回應時引用此文章
Ericchu離線中  
kec
Major Member
 
kec的大頭照
 

加入日期: Feb 2004
您的住址: Terran Empire
文章: 283
引用:
作者穩ㄝ
(恕刪)

用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.產品代號

我想您可能要為樓主解釋一下為什麼要用 outer join 的原因,樓主大概會對用 outer join 感到困惑。(純是個人推測,如果樓主已經知道用 outer join 的原因,請見諒。)
舊 2006-06-30, 11:35 PM #18
回應時引用此文章
kec離線中  
mor8
Major Member
 

加入日期: Aug 2005
文章: 237
我是希望產生像下圖一樣的報表
第一個欄位是個key(產品代號)
由於手上沒有公司的資料庫
所以也無法測試
謝謝大家

PS.第三個欄位和第四個欄位,一定要用sum

此文章於 2006-07-01 09:00 AM 被 mor8 編輯.
舊 2006-07-01, 08:58 AM #19
回應時引用此文章
mor8離線中  
boaboa
Major Member
 

加入日期: Nov 2004
您的住址: 竹北
文章: 206
select distinct產品代號.產品代號,產品資料表.產品名稱,sum(預估資料表.預估產品數量)as預估產品數量 ,sum(訂單資料表.訂單數量)as實際產品數量

from 產品資料表 inner join (預估資料表 inner join 訂單資料表 on 預估資料表.廠商代號=訂單資料表.廠商代號)on產品資料表.產品代號=預估資料表.產品代號

group by 產品代號.產品代號
order by 產品代號.產品代號
__________________
Put your hands on your conscience!
And you say:you accept that!
舊 2006-07-01, 03:35 PM #20
回應時引用此文章
boaboa離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



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


vBulletin Version 3.0.1
powered_by_vbulletin 2026。