2010-04-04 7 views
4

J'ai une table pleine de bugs. Le BugTitle est la page d'erreur et je capture également la ligne d'erreur. Je voudrais construire une requête SQL qui sélectionne les 10 meilleurs bogues basés sur bugtitle et ligne d'erreur. J'ai cette requête:SQL Get Top 10 enregistrements par date

SELECT COUNT(BugTitle) AS BugCount, BugTitle, ErrLine 
FROM Bugs 
WHERE BugDate >= DateAdd(Day, -30, DateDiff(Day, 0, GetDate())) 
GROUP BY BugTitle, ErrLine 
ORDER BY BugCount, ErrLine DESC 

Mais je ne suis pas sûr que ce soit correct. Je suis à peu près certain que mes données de test ont seulement 1 bug qui arrive sur la même ligne mais qui n'apparaît pas avec cette requête. Quelqu'un peut-il aider?

Répondre

2

Pour obtenir le top 10 que vous voulez sans doute le plus souvent à l'ordre par le nombre:

SELECT TOP(10) COUNT(BugTitle) AS BugCount, BugTitle, ErrLine 
FROM Bugs 
WHERE BugDate >= DateAdd(Day, -30, DateDiff(Day, 0, GetDate())) 
GROUP BY BugTitle, ErrLine 
ORDER BY COUNT(BugTitle) DESC 
+1

ORDER BY BugCount comme il l'a fait ne suffit pas? – systempuntoout

+1

Vrai .... mais la desc est fausse. –

+0

* modifier * Il semble que votre requête fonctionne, car un copier-coller de votre est parfait, je dois avoir mal tapé. –

Questions connexes