Si j'ai la table ci-dessous appelée La sortie requise et attendue serait (ID de transaction 1 et 4 uniquement): P>
merci p> ventes code>, comment créer une requête SQL pour extraire les données pour les transactions lorsque seul
chocolat code> a été vendu. P>
4 Réponses :
Il existe trois transactions dans votre exemple où le chocolat a été vendu, cela tirera des données de 3 lignes.
select count(transaction_ID), sum(sales_value) from sales s1 where item = 'Chocolate' and transaction in (select transaction id from (select transaction_id, count(*) cnt from sales) where cnt =1)
Essayez quelque chose comme ça
SELECT COUNT(*) as TransactionID, SUM(SaleValue) FROM TableName t1 WHERE Item = 'Chocolate' AND NoT EXISTS (SELECT 1 FROM TableName t2 WHERE t1.TransactionID = t2.TransactionID AND t2.Item <> 'Chocolate')
. . . Vous devez supprimer salevalue = 1 code> & utiliser
somme (salevalue) code> au lieu de
compte () code>
Vous voulez des transactions où le chocolat a été vendu mais rien d'autre. La manière déclarative de faire ce serait:
Sélectionnez Compte (), transaction_id où article = 'chocolat' groupe par transaction_id ayant compté ( em>) = 1; p>
Pourquoi la ligne numéro 3 est-elle exclue du résultat?
Les échantillons de données sont mieux présentés comme texte formaté . Voir ici pour quelques conseils sur la création de belles tables.
Quel produit DBMS utilisez-vous? "SQL" est juste une langue de requête, pas le nom d'un produit de base de données spécifique. Veuillez ajouter un tag pour le produit de base de données que vous utilisez. Pourquoi devrais-je marquer mon DBMS
@Jaydipjadhav: Parce que dans la transaction avec ID = 3 chips, où également vendu
Comment puis-je demander et répondre aux questions de devoirs?