請問如有三個資料庫A、B、C,都在同台DB
要怎樣讓SELECT可以顯示如下
資料庫A 資料庫B 資料庫C
產品甲售價 100 120
產品乙售價 110 80
產品丙售價 60 90
產品丁售價 200
空白無此資料庫無此品號販售資料
同產品各資料庫會同品號
剛自學接觸SQL不久
敬請各位大大指教
謝謝
select price as '資料庫A','' as '資料庫B','' as '資料庫C'
from 資料庫A.dbo.table
union all
select '' as '資料庫A',price as '資料庫B','' as '資料庫C'
from 資料庫B.dbo.table
union all
select '' as '資料庫A','' as '資料庫B',price as '資料庫C'
from 資料庫C.dbo.table
order by 產品
希望對你有所幫助囉!!
SELECT TH004 '品號' , TWH.TH018 'TW單價' , DGH.TH018 'DG單價' , SZH.TH018 'SZ單價'
FROM ( SELECT TH004, 'TW', 0 AS 'DG', 0 AS 'SZ' FROM TW.dbo.PURTH AS TWH --進貨單
WHERE TWG.TG003 = (SELECT MAX(TWTG.TG003)
FROM TWKY.dbo.PURTH AS TWTH
WHERE TWTH.TH004 = TWH.TH004) --取進貨日期為最新的一筆
UNION ALL
SELECT TH004, 0 AS 'TW', 'DG', 0 AS 'SZ' FROM DG.dbo.PURTH AS DGH
WHERE DGG.TG003 = (SELECT MAX(DGTG.TG003)
FROM DG.dbo.PURTH AS DGTH
WHERE DGTH.TH004 = DGH.TH004)
UNION ALL
SELECT TH004, 0 AS 'TW', 0 AS 'DG', 'SZ' FROM SZ.dbo.PURTH AS SZH
WHERE SZG.TG003 = (SELECT MAX(SZTG.TG003)
FROM SZ.dbo.PURTH AS SZTH
WHERE SZTH.TH004 = SZH.TH004) )
ORDER BY TH004
稍微修改了一下 不知哪裡還有問題
Left join 或 Right Join 是橫向串接
Union 是垂直串接
但是
建議你都放在同一個資料庫內的不同資料表裡
因為跨資料庫的效能不是很好
而且衍生的問題也一堆 (如果資料庫還不是放在同一台裡的話)
方法百百種
資料大,又切DB 又去 Join..
效能
在前端 分三次Conection 去撈三次
用前端的技術
我.net 用 Linq 把三個串起來就好了
管他橫的,直的,斜的,樹狀..都不是問題