我有一個由id、date和status等列組成的表變數,如下圖所示
DECLARE @DateValues TABLE (
id int identity(1,1) 。
日期 datetime,
status varchar (5)
)
下面是示例資料
INSERT INTO @DateValues values ('5/22/2021', '')
INSERT INTO @DateValues values ('5/21/2021'/span>, 'ABC')
INSERT INTO @DateValues values ('5/22/2021', 'ABC')
還宣告了一個變數,如下所示。
DECLARE @MaxID INT
從這個表中,我需要得到包含日期最大值的行( MAX(dates)),其中狀態為'ABC',從上面的樣本值中,我應該得到第三行作為結果,我需要將該行ID的相應id值分配給一個變數(@MaxID)。
我嘗試了以下的查詢,但得到的是多個結果集
。SELECT id, MAX(dates), Footer
FROM @DateValuesWHERE STATUS = 'ABC'/span>
GROUP BY id, STATUS
SELECT id, dates, status
FROM @DateValues
WHERE dates = (
SELECT MAX(dates)
FROM @DateValues(dates)
);
我需要的是:
@MaxID = id
FROM @DateValues
WHERE dates = (
SELECT MAX(dates)
FROM @DateValues(dates)
WHERE STATUS='ABC'/span>
);
請幫助。
uj5u.com熱心網友回復:
這是你想要的嗎?
SELECT *
FROM (
SELECT *, RN = ROW_NUMBER() OVER (ORDER BY datesDESC)
FROM @DATEVALUE
WHERE status = 'ABC'/span>
) AS D
WHERE D.RN = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/332783.html
標籤:
