SQL server SELECT @VARIABLE = TOP 1

Ich versuche, das folgende in einer gespeicherten Prozedur durchzuführen

DECLARE @TICKET_AGE INT SELECT @TICKET_AGE = TOP 1 (DATEDIFF(second, DATE_ENTERED, GETDATE())/60) AS TICKET_AGE FROM TICKETS 

Aber es gibt Fehler, das sagt, dass ich falsch bin. SYNTAX NEAR 'TOP' Was mache ich falsch?

Also habe ich meinen Code aktualisiert, um nach unten zu schauen … aber jetzt bekommst du falsche Syntax in der Nähe des Stichwortes 'AS'.

  -- DECLARE VARIABLE DECLARE @TICKET_AGE INT -- PULL THE DATA SELECT TOP 1 @TICKET_AGE = (DATEDIFF(second, DATE_ENTERED, GETDATE())/60) AS TICKET_AGE FROM TICKETS WHERE LOWER(STATUS_DESCRIPTION) LIKE '%new%' ORDER BY DATE_ENTERED ASC 

Die TOP 1 kommt vor der Variable:

 SELECT TOP 1 @TICKET_AGE = DATEDIFF(second, DATE_ENTERED, GETDATE()) / 60 FROM TICKETS 

Wenn du deine aktuelle Variable für die TOP statement verwenden @TICKET_AGE (dh die Top- @TICKET_AGE Zeilen @TICKET_AGE ), dann würdest du verwenden:

 SELECT TOP @TICKET_AGE DATEDIFF(second, DATE_ENTERED, GETDATE()) / 60 FROM TICKETS 

Nicht sicher, ob es darauf ankommt, aber das sollte dir das gleiche Ergebnis geben und besser ausführen

 SELECT @TICKET_AGE = MAX(DATEDIFF(second,DATE_ENTERED,GETDATE()) / 60) FROM TICKETS WHERE LOWER(STATUS_DESCRIPTION) LIKE '%new%'