我正在嘗試添加將顯示所有最新定價的所有資料領域。因為特定位置有兩個最新日期,所以只有 5/6 顯示日期為 5/27。我需要一個位置顯示,并且它的最晚日期是 5/26。下面的例子:
ITEMNUMBER PRICETYPE FROMDATE SITE PRICECREATEDDATE PRICE PRICEQUANTITY
12345 cost 2022-05-26 A 2022-05-26 1.23 1
12345 cost 2022-05-27 G 2022-05-27 1.23 1
12345 cost 2022-05-27 M 2022-05-27 1.23 1
12345 cost 2022-05-27 N 2022-05-27 1.23 1
12345 cost 2022-05-27 P 2022-05-27 1.23 1
12345 cost 2022-05-27 U 2022-05-27 1.23 1
我目前有這個查詢:
SELECT T.ITEMNUMBER, T.PRICETYPE, T.FROMDATE, T.SITE, T.PRICECREATEDDATE, T.PRICE, T.PRICEQUANTITY
FROM DBO.[D365 STRD Costs] T
INNER JOIN (
SELECT ITEMNUMBER, MAX(FROMDATE) AS MAXDATE
FROM DBO.[D365 STRD Costs]
GROUP BY ITEMNUMBER
) TM ON T.ITEMNUMBER = TM.ITEMNUMBER AND T.FROMDATE = TM.MAXDATE
結果:
ITEMNUMBER PRICETYPE FROMDATE SITE PRICECREATEDDATE PRICE PRICEQUANTITY
12345 cost 2022-05-27 G 2022-05-27 1.23 1
12345 cost 2022-05-27 M 2022-05-27 1.23 1
12345 cost 2022-05-27 N 2022-05-27 1.23 1
12345 cost 2022-05-27 P 2022-05-27 1.23 1
12345 cost 2022-05-27 U 2022-05-27 1.23 1
我也需要站點“A”來拉起,因為這是最新價格。它是前一天剛進口的。
uj5u.com熱心網友回復:
您似乎使用的是 SQL Server(或 Sybase)而不是 MySQL。
如果您需要將其包括在內,SITE請嘗試添加:GROUP BY
SELECT T.ITEMNUMBER, T.PRICETYPE, T.FROMDATE, T.SITE, T.PRICECREATEDDATE, T.PRICE, T.PRICEQUANTITY
FROM DBO.[D365 STRD Costs] t
INNER JOIN (
SELECT ITEMNUMBER, SITE, MAX(FROMDATE) AS MAXDATE
FROM DBO.[D365 STRD Costs]
GROUP BY ITEMNUMBER, SITE
) TM ON T.ITEMNUMBER = TM.ITEMNUMBER AND T.FROMDATE = TM.MAXDATE
AND T.SITE = TM.SITE
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484594.html
上一篇:不明白為什么mysql查詢這么慢
