作者cutekid (可愛小孩子)
看板Database
標題Re: [SQL ] 不同資料庫 同table查詢問題
時間Fri Jan 12 14:32:05 2018
方法一:
;with tb1 as (
select M.產編,T1.日期
From 資料庫Now.table M
Left outer join 資料庫Now.Table出貨紀錄 T1 on M.產編 = T1.產編
Where 條件 T1.xx = xxx.....
),
tb2 as (
select M.產編,T1.日期
From 資料庫2013.table M
Left outer join 資料庫2013.Table出貨紀錄 T1 on M.產編 = T1.產編
Where 條件 T1.xx = xxx.....
),
tb3 as (
select * from tb1
union all
select * from tb2
)
select 產編,max(日期) as 最近日期
from tb3
group by 產編
---------------------------------
方法二:
;with tb1 as (
select M.產編,max(T1.日期) as 最近日期
From 資料庫Now.table M
Left outer join 資料庫Now.Table出貨紀錄 T1 on M.產編 = T1.產編
Where 條件 T1.xx = xxx.....
group by M.產編
),
tb2 as (
select M.產編,max(T1.日期) as 最近日期
From 資料庫2013.table M
Left outer join 資料庫2013.Table出貨紀錄 T1 on M.產編 = T1.產編
Where 條件 T1.xx = xxx.....
group by M.產編
)
select isnull(t1.產編,t2.產編) as 產編,
case when isnull(t1.最近日期,'') > isnull(t2.最近日期,'')
then t1.最近日期
else t2.最近日期
end as 最近日期
from tb1 t1 full join tb2 on t1.產編 = t2.產編
※ 引述《tsongs (......)》之銘言:
: 資料庫名稱:mssql
: 資料庫版本:2008
: 內容/問題描述:
: 因為舊資料被搬到另一個
: 有2資料庫 同一個table
: 要取2邊最大值
: select M.產編,max(T1.日期) as 最近日期
: From 資料庫Now.table M
: Left outer join 資料庫Now.Table出貨紀錄 T1 on M.產編 = T1.產編
: Where 條件 T1.xx= xxx.....
: Group by M.產編
: 資料庫Now 改成 資料庫2013 也沒問題
: 請問能不能直接寫在一起直接抓到2邊的最大值
: 有 group 不知道怎處理
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.233.210
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1515738728.A.BCB.html
推 tsongs: 用方法2執行成功 感謝 01/12 15:43
→ tsongs: 如果要加入第3個資料庫,ISNULL() AS 產編 會出現問題 01/12 15:45
→ tsongs: 有解嗎 還是用方法一來處理 01/12 15:46
推 tsongs: 方法一 3TABLE 跑起來沒問題 改用方法一 01/12 15:55