2014-06-24 12 views
29

Chcę wziąć wartość ExtractedDate z tego zapytania i użyć go jako @LastExtractDate w następnym zapytaniu. Jak to zrobić?Wybierz pole Top 1 i przypisz do lokalnej zmiennej

SELECT TOP 1 [ExtractedDate] 
    FROM [OnsiteV4].[dbo].[SqlPendingIndex] order by ExtractedDate desc 

obok zapytania:

insert into @table(Hex, KeyDeviceId, ObjectDateTime, ExtractedDate ) 
SELECT  CONVERT(VARCHAR(MAX), CONVERT(VARBINARY(MAX), ObjectValue, 1)) AS Hex, KeyDeviceId, ObjectDateTime , GETDATE() 
    FROM   SQLPending 
    WHERE  (ObjectSubType LIKE '%GAS%') and (ObjectDateTime > @LastExtractDate) 
+0

dlaczego nie odebrać odpowiedź po tych wszystkich latach haha – SketchyTurtle

Odpowiedz

5

Wystarczy zadeklarować & Przypisz:

DECLARE @LastExtractDate DATETIME = (
    SELECT TOP 1 [ExtractedDate] FROM [OnsiteV4].[dbo].[SqlPendingIndex] order by ExtractedDate desc 
) 

lub lepiej:

DECLARE @LastExtractDate DATETIME = (
    SELECT MAX(ExtractedDate) FROM [OnsiteV4].[dbo].[SqlPendingIndex] 
) 
55

dlaczego nie korzystać z tego:

declare @LastExtractDate date 
SELECT TOP 1 @LastExtractDate=[ExtractedDate] 
FROM [OnsiteV4].[dbo].[SqlPendingIndex] order by ExtractedDate desc 
0

Użyj tego:

DECLARE @ExtractedDate DATETIME 
SET @ExtractedDate = (SELECT TOP 1 ExtractedDate 
         FROM  [OnsiteV4].[dbo].[SqlPendingIndex] 
         ORDER BY ExtractedDate DESC 
2

Spróbuj tego po prostu

declare @LastExtractDate date 
SELECT @LastExtractDate=MAX([ExtractedDate]) 
FROM [OnsiteV4].[dbo].[SqlPendingIndex] 
Powiązane problemy