SQL GROUP BY sur une sous-requête
J'ai une requête qui renvoie les résultats à partir de 2 tables en 1 à l'aide d'une UNION de TOUS les, tous les ouvrages que j'en ai besoin. Cependant j'ai besoin d'exécuter un GROUPE PAR un ORDRE sur le dataset retourné cependant, je reçois beaucoup d'erreurs et je ne suis pas sûr de savoir comment le résoudre.
Voici ma Requête:
SELECT ProductID, Quantity
FROM BasketItems
UNION ALL
SELECT ProductID, Quantity
FROM OrderItems
Cela renvoie un jeu de résultats comme ceci:
ProductID Quantity
15 2
20 2
15 1
8 5
5 1
Je veux exécuter un GROUP BY
sur le ProductID
champ et puis, finalement, un ORDER BY DESC
sur le Quantity
champ. Donc, dans le résultat final, cette série de résultats mènera finalement à ceci:
ProductID
8
15
20
5
Je peux ensuite d'exécuter des requêtes sur ce résultat comme j'ai l'habitude de faire
EDIT:
Comme indiqué ci-dessus, mais peut-être pas assez implicite est que j'ai besoin pour exécuter des requêtes sur les résultats retournés, ce qui n'est pas le travail que vous ne pouvez pas exécuter une requête sur un ensemble de résultats qui ont une clause ORDER BY (pour l'instant comme je l'ai recueillie à partir de la liste d'erreurs)
Si vous souhaitez plus d'informations sur le problème, le voici: c'est
À partir de cet ensemble de résultats, je veux obtenir les produits de la table produit qu'elles se rapportent à
SELECT * FROM Products WHERE ID IN (
SELECT ProductID
FROM
(
SELECT ProductID, Quantity
FROM BasketItems
UNION ALL
SELECT ProductID, Quantity
FROM OrderItems
) v
GROUP BY ProductID
ORDER BY SUM(Quantity) DESC
)
Cependant, j'ai cette erreur: La clause ORDER BY n'est pas valide dans les vues, les fonctions inline, les tables dérivées, sous-requêtes, et les expressions de table communes, à moins d'en HAUT, le DÉCALAGE ou POUR XML est également spécifié.
La production de produits doivent être dans l'ordre où ils sont retournés dans la sous-requête (Par quantité)
J'ai seulement besoin de la référence du produit dans l'ensemble de résultats final
l'introduction de cette nouvelle table
Products
changements de la question un peu devrez modifier ma tentative de réponseOui, j'ai oublié de donner des précisions sur ce point, je ne savais pas qu'il allait faire une différence, je ne mentionnez brièvement dans une une ligne de la phrase mais n'a pas fait un point d'honneur. Mes excuses
OriginalL'auteur JakeJ | 2012-08-08
Vous devez vous connecter pour publier un commentaire.
Veuillez voir edit pour le post, je devrais avoir élaboré cette plus dans la première place, mais j'ai pensé que je pourrais exécuter une requête tout de suite la réponse posté
L'édition que vous venez de fait a quelques erreurs de mentionner nom de colonne non valide pour ProductID et ProductName
La dernière modification, ne fonctionne toujours pas, erreur sur la deuxième à la dernière ligne, le nom de colonne non valide ProductID à nouveau.
+1 tour de nice sur la somme()
OriginalL'auteur podiluska
ce travail?
OriginalL'auteur NG.
Voici un cte version (pas de test en direct s'il vous plaît excuser les maladresses)
MODIFIER
pas de soucis - j'ai eu un aller à l'édition - au moins cela vous donne une idée de ce que d'expressions de table communes ressembler
OriginalL'auteur whytheq