SQL sélectionner tous les enregistrements seulement si la somme est supérieure à 100
Je ne suis pas exactement sûr de la façon de demander cela, donc je vais donner un exemple
J'ai une immense table qui ressemble à quelque chose comme ça...
Name Widgets TransDate Location
Abby 2 12/1/2010 Middleton
Abby 13 1/10/2011 Burmingham
Bobby 10 12/12/2011 Easton
Bobby 5 10/10/2011 Weston
.
.
Et mon actuel de l'instruction sql...
SELECT name, widgets, TransDate, Location
FROM MyTable
WHERE TransDate BETWEEN 1/1/2011 and 12/31/2011
de me donner un tableau comme celui-ci...
Name Widgets TransDate Location
Abby 13 1/10/2011 Burmingham
Bobby 15 12/12/2011 Easton
Bobby 5 10/10/2011 Weston
.
.
Comment puis-je modifier le SQL ci-dessus, également, de se débarrasser des dossiers de personnes qui ne répondent pas à un Widget quota de X... dire X = 16. Dans ce cas, Abby allait être abandonné du fait de son nombre total de widgets est de 13 et de Bobby dossiers de rester parce que son total est de 20.
Vous en remercie d'avance!
- Ont-ils besoin pour atteindre le quota à l'intérieur de
1/1/2011 and 12/31/2011
ou à tout moment - J'ai besoin d'eux à l'intérieur du quota, j'ai donc besoin d'une plage de dates dans les deux endroits
- Ensuite, vous aurez besoin d'utiliser soit SQLMenance de réponse ou de modifier Michael sql afin d'inclure une clause where dans la sous-requête
Vous devez vous connecter pour publier un commentaire.
Si je comprends bien votre demande, vous voulez des résultats similaires à ce que vous avez déjà, mais le filtrage de ces noms qui ont respecté le quota. Si c'est correct, vous pouvez utiliser un
IN()
sous-requête pour trouver des noms regroupés avec >= 100 widgets.TransDate BETWEEN 1/1/2011 and 12/31/2011
de la sous-requête, sinon on sera de retour les gens avec une somme > 16 si ils avaient des widgets en dehors de ce laps de tempspour sql server, il pourrait être fait de cette
Pour SQL Server 2005+, vous pouvez aussi essayer:
C'est en supposant que le quota doit être meeted sur le même cadre.