1
我試圖連接4個具有複雜關係的表。由於這將用於何處,因此需要將其包含在單個查詢中,但由於主查詢和IN子句查詢都將2個表連接在一起,並且查找在兩列上,所以我遇到了麻煩。SQL Server:使用元組IN多重連接IN子句
的目標是輸入SalesNum
和SalesType
並讓它返回Price
表和關係:
sdShipping
SalesNum[1]
SalesType[2]
Weight[3]
sdSales
SalesNum[1]
SalesType[2]
Zip[4]
個
spZones
Zip[4]
Zone[5]
spPrices
Zone[5]
Price
Weight[3]
這是我在T-SQL的最新嘗試:
SELECT
spp.Price
FROM
spZones AS spz
LEFT OUTER JOIN
spPrices AS spp ON spz.Zone = spp.Zone
WHERE
(spp.Weight, spz.Zip) IN (SELECT ship.Weight, sales.Zip
FROM sdShipping AS ship
LEFT OUTER JOIN sdSales AS sales ON sales.SalesNum = ship.SalesNum
AND sales.SalesType = ship.SalesType
WHERE sales.SalesNum = (?)
AND ship.SalesType = (?));
SQL Server Management Studio中說,我有一個錯誤我的語法靠近','(恰當無用的錯誤 信息)。任何人都不知道這是否甚至允許在微軟的SQL版本中使用?也許還有另一種方法來完成它?我在這裏看到了多鍵IN問題,但從來沒有在雙方都需要JOIN的情況下回答。
你是一個天才戈登 - 這是真正有用的,謝謝!我仍然沒有得到任何結果,但至少它不再給我一個錯誤了......再也不用浪費時間了。我會盡快找出遺漏的東西,以便得到Price – Typel
@Typel。 。 。您的查詢相當複雜。一種可能性是權重不匹配 - 這看起來像一個數字,可能更多的是一個範圍。 –
良好的呼叫,我一直在那裏一直在使用CEILING來減肥,但是在嘗試幾次失誤之後,必須嘗試減肥。還要在SalesNum和SalesType上嘗試RTRIM,因爲最後偶爾會有空白字符。沒有什麼,但我覺得它接近... – Typel