0
votes

SQL Comment résumer la quantité totale

1.Le ID client, Nom de la société, Nombre de commandes et montant total de la commande pour tous les clients qui ont acheté un article dans la catégorie Beverages.

SELECT Customers.CustomerID, Customers.CompanyName, Categories.CategoryName, [Order Details].Quantity
FROM Customers, Categories, [Order Details]
WHERE Categories.CategoryName ='Beverages';


5 commentaires

son "> =" pas "=>" Essayez d'ajouter "et [Détails de la commande] .Quanté> = 3" à la fin de votre requête


Vous devez montrer des relations entre les tableaux, les catégories et les détails de la commande. Et apprendre sur groupby & ayant cela pourrait résoudre votre problème.


Merci pour le "groupe par" et "avoir" m'aidez beaucoup. Et me laisser savoir son "> ="


Ajoutez quelques échantillons de données avec votre sortie attendue d'eux. CA aidera.


Non Non Non Non Non Non Apprenez à rejoindre vos tables à l'aide de la syntaxe de jointure moderne et non de cette ancienne et de la syntaxe de la clause. Si vous validez votre première requête, vous le réaliserez qu'il ne s'agit pas de manière logique.


3 Réponses :


0
votes

Cette question peut sembler simple, mais nous devons amener les clients qui ont placé plus que 3 commandes avant de rejoindre d'autres tables.

select t1.CustomerID
    , t1.CompanyName
    , t3.CategoryName
    , t4. Quantity
from Customers t1
inner join 
    (select customerId from 
    [Order Details]
    where categoryId = (select categoryId from Categories where CategoryName ='Beverages')
    group by customerId
    having count(1) >= 3) t2 on t2.CustomerID = t1.customerId
inner join [Order Details] t4 on t4.CustomerID = t1.customerId
inner join Categories t3 on t3.CategoryId = t4.CategoryId
 where t3.CategoryName ='Beverages'


0 commentaires

0
votes

Essayez cette requête.

SELECT t1.CustomerID
    , t1.CompanyName
    , t3.Categoryname
    , t4. Quantity,noorders
FROM Customers t1
INNER JOIN [Order Details] t4 ON t4.CustomerID = t1.customerId
INNER JOIN Categories t3 ON t3.CategoryId = t4.CategoryId
CROSS APPLY (SELECT noorders=count(orderid) FROM [Order Details] ord2 
        WHERE ord2.CustomerID=t4.CustomerID and ord2.CategoryId = t3.CategoryId) AS t2
 WHERE t3.CategoryName ='Beverages'
 and t2.noorders>=3


0 commentaires

0
votes

C'est ce que le travail final pour moi xxx

merci à tous pour l'aide.


0 commentaires