2014-06-24 12 views
29

Desidero prendere il valore di ExtractedDate da questa query e utilizzarlo come @LastExtractDate nella query successiva. Come faccio?Selezionare il primo campo e assegnare alla variabile locale

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

query successiva:

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

perché non scegliere una risposta dopo tutti questi anni haha – SketchyTurtle

risposta

5

semplicemente dichiarare & assegnazione:

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

o meglio:

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

perché non utilizzare questo:

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

Utilizzare questa:

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

Prova questo semplicemente

declare @LastExtractDate date 
SELECT @LastExtractDate=MAX([ExtractedDate]) 
FROM [OnsiteV4].[dbo].[SqlPendingIndex] 
Problemi correlati