2014-06-24 21 views
29

Tôi muốn lấy giá trị của ExtractedDate từ truy vấn này và sử dụng nó như @LastExtractDate trong truy vấn tiếp theo. Tôi làm như thế nào?Chọn trường Top 1 và gán cho biến cục bộ

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

truy vấn tiếp theo:

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

tại sao không chọn một câu trả lời sau ngần ấy năm haha – SketchyTurtle

Trả lời

5

Đơn giản chỉ cần tuyên bố & assign:

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

hoặc tốt hơn:

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

tại sao không sử dụng này:

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

Sử dụng này:

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

Hãy thử điều này chỉ đơn giản là

declare @LastExtractDate date 
SELECT @LastExtractDate=MAX([ExtractedDate]) 
FROM [OnsiteV4].[dbo].[SqlPendingIndex] 
Các vấn đề liên quan