我在我的SQL數據庫中有兩個相同的表,這些表分別由項目代碼和數量組成。不同的qaunties上的內部連接
我需要看哪個有不同數量的兩個表中的項目和
沒有在其他表中存在的項目
我嘗試使用FULL OUTER JOIN ON ITEMCODE = ITEMCODE及數量<> QTY
它不工作
結果我得到的東西LIK Ë是:
http://www.sendspace.com/file/nmb7yu
我在我的SQL數據庫中有兩個相同的表,這些表分別由項目代碼和數量組成。不同的qaunties上的內部連接
我需要看哪個有不同數量的兩個表中的項目和
沒有在其他表中存在的項目
我嘗試使用FULL OUTER JOIN ON ITEMCODE = ITEMCODE及數量<> QTY
它不工作
結果我得到的東西LIK Ë是:
http://www.sendspace.com/file/nmb7yu
嘗試是這樣的:
SELECT c.Code ,
t1.Code ,
t1.Qty ,
t2.Code ,
t2.Qty
FROM (SELECT Code
FROM dbo.Table1
UNION
SELECT Code
FROM dbo.Table2
) c
LEFT OUTER JOIN dbo.Table1 t1 ON c.Code = t1.Code
LEFT OUTER JOIN dbo.Table2 t2 ON c.Code = t2.Code
WHERE t1.Code IS NULL
OR t2.Code IS NULL
OR t1.Qty <> t2.Qty
既然你有一個測試對於WHERE子句中的不等式,您隱式地只包含兩個表中的項目。通過這種方式,您可以將物品放在一張表中,但不包含其他物品,或者在數量上有差異。
救生員謝謝男人:) –
WKordos的答案很可能會更好,只是FYI。由於union和left outer join,我提供的union會導致更多的讀取。 –
好的,謝謝,我也會嘗試一下 –
select *
from table1 a full outer join table2 b
on a.code = b.code
where a.qty <> b.qty or a.code is null or b.code is null
我的幸運的猜測是,你過濾掉行,其中代碼欄爲空
**它不工作**是什麼意思?你有錯誤信息嗎?錯誤的結果?還有別的嗎?請發佈幾行樣本數據(涵蓋所有可能的案例)和期望的結果,以便我們確切地知道你在做什麼。 –
@AaronBertrand你可以從我剛剛添加的鏈接下載結果集 –
至少說出爲什麼是負面投票:@ –