2009-04-26 5 views
1

Ich habe eine Tabelle in einer SQL Server 2008-Datenbank, die eine Reihe von Datensätzen sowie eine Datumsspalte enthält. Das Datum wird automatisch eingefügt, wenn ein neuer Eintrag in die Tabelle erfolgt. Es enthält also das Datum des Datensatzes, der erstellt wurde.TSQL-Abfrage, die mir das früheste Datum und das späteste Datum in einer Tabelle zurückgeben würde

Ich versuche, eine Abfrage auszuführen, die mir das früheste Datum und das späteste Datum in dieser Tabelle zurückgeben würde.

Ich versuchte so etwas wie;

SELECT TOP(1) DateAdded AS firstdate 
FROM  News 
ORDER BY DateAdded DESC; 

SELECT TOP(1) DateAdded AS lastdate 
FROM  News 
ORDER BY DateAdded ASC; 

aber es gab nur das 'Firstdate' zurück.

Kann mir jemand sagen, wie ich das erreichen kann?

Antwort

3
SELECT 
     MIN(DateAdded) As FirstDate, 
     MAX(DateAdded) As LastDate 
FROM 
     News; 
1

Die Antwort ist Aggregate zu verwenden.

SELECT 
    MIN(DateAdded) AS firstdate, 
    MAX(DateAdded) AS lastdate 
FROM 
    News; 

Ihre Abfrage gibt 2 Ergebnisse: jedes Werk einzeln obwohl

+0

danke für die Antwort, markierte ich Jose Antwort als er zum ersten Mal schrieb und ich will niemanden beleidigen ... –

+0

Ich kann mir vorstellen, dass ein paar von uns rennen, um diesen zu beantworten ... Lucky Jose :-) – gbn

1

Sie so etwas wie dies nutzen könnten:

select DateAdded  from (SELECT DateAdded, 
      row_number() over (order by DateAdded desc) as rn, 
      count(*) over() as added_value 
    FROM News 
) t 
where rn = 1 
    or rn = added_value 
ORDER BY DateAdded DESC 
Verwandte Themen