[英]SQL Left Join Subquery Issue
我正在嘗試從數據表中獲取最新價格。 數據將如下所示:
零件價格日期
----- ----- --------
10525 .25 1/1/2010
10525 5.00 7/6/2014
10526 4.25 7/1/2014
我嘗試使用聯接以便獲得“ 10525 5.00 7/6/2014”的結果,但是它給了我這個錯誤:
列前綴“ orderdtl”與查詢中使用的表名或別名不匹配。 聲明無法准備。”
如果我退出聯接,它就可以正常工作。 我要去哪里錯了?
SELECT orderdtl.partnum, orderdtl.docunitprice, orderhed.orderdate
FROM mfgsys80.dbo.orderdtl AS orderdtl, mfgsys80.dbo.orderhed AS orderhed
INNER JOIN(
SELECT orderdtl.partnum, MAX(orderhed.orderdate) AS 'maxDate'
FROM mfgsys80.dbo.orderdtl AS orderdtl, mfgsys80.dbo.orderhed AS orderhed
GROUP BY orderdtl.partnum
) AS Temp
ON orderdtl.partnum = Temp.partnum AND orderhed.orderdate = Temp.maxDate
WHERE orderdtl.ordernum = orderhed.ordernum AND ((orderdtl.custnum=74))
ORDER BY orderdtl.partnum
您查詢的格式是錯誤的。 應該像
SELECT orderdtl.partnum, orderdtl.docunitprice, orderhed.orderdate
FROM mfgsys80.dbo.orderdtl AS orderdtl
JOIN mfgsys80.dbo.orderhed AS orderhed
ON orderdtl.ordernum = orderhed.ordernum
INNER JOIN(
SELECT ol.partnum, MAX(od.orderdate) AS 'maxDate'
FROM mfgsys80.dbo.orderdtl ol
JOIN mfgsys80.dbo.orderhed od
ON ol.ordernum = od.ordernum
GROUP BY ol.partnum
) Temp
ON orderdtl.partnum = Temp.partnum
AND orderhed.orderdate = Temp.maxDate
WHERE orderdtl.custnum=74
ORDER BY orderdtl.partnum
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.