2009-04-26 13 views
1

J'ai une table dans une base de données SQL Server 2008 qui contient un tas d'enregistrements ainsi qu'une colonne de date. La date est insérée automatiquement lorsqu'une nouvelle entrée dans la table se produit. Donc, il contient la date de l'enregistrement qui a été créé.Requête TSQL qui me renvoie la première date et la dernière date dans une table

J'essaye d'exécuter une requête qui me renverrait la première date et la dernière date dans cette table.

J'ai essayé quelque chose comme;

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

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

mais il n'a renvoyé que le 'firstdate'.

Quelqu'un peut-il me guider sur la façon d'y parvenir?

Répondre

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

La réponse est d'utiliser des agrégats.

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

Votre requête renvoie 2 résultats: chacun travaille individuellement si

+0

Nous vous remercions de la réponse, j'ai marqué la réponse de Jose comme il l'écrit d'abord et je Je ne peux pas offenser qui que ce soit ... –

+0

Je peux imaginer un groupe d'entre nous courir pour répondre à celui-ci ... Lucky Jose :-) – gbn

1

Vous pouvez utiliser quelque chose comme ceci:

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 
Questions connexes