J'ai besoin de récupérer un enregistrement principal ensemble la somme de ses détails. Voici les définitions de deux tables:
Tableau maître (maître) p> exemple d'enregistrement: p> détails Table (Détails) P> SELECT m.id, m.name ,
SUM(CASE when type='red' then quantity end) as redsum,
SUM(CASE when type='blue' then quantity end) as bluesum
from mydetails as t
inner join mymaster as m
on m.id = t.master_id
GROUP BY m.id, m.name
3 Réponses :
Il suffit d'utiliser un groupe par et utilisez pivot pour afficher chaque produit dans une ligne p>
Merci pour votre contribution. J'ai testé votre code. La deuxième déclaration ne fonctionne pas. En outre, j'ai besoin d'une seule déclaration avec les résultats comme indiqué dans le poteau.
Si je vous obtiens correctement, vous recherchez un pivot, dans ce cas, vous pouvez utiliser si vous voulez simplement une quantité totale de Tapez ensuite Utilisez le suivant P> case code> comme suivant select
master_id,
type,
sum(quantity) as total_quantity
from yourTable
group by
master_id,
type
Merci de m'avoir aidé. Votre première déclaration est proche, mais elle manque le champ Nom dans la table principale. J'ai besoin d'une seule déclaration.
Vous pouvez utiliser une fonction de concession avec le groupe en pour obtenir des résultats comme une instruction unique.
+-----------+--------+---------+ | name | redsum | bluesum | +-----------+--------+---------+ | Product10 | 13 | 16 | +-----------+--------+---------+
Merci. La table principale peut contenir plusieurs enregistrements avec différents produits. Ainsi, nous ne pouvons pas avoir un "produit" fixe. Pas besoin de "(somme de rouge)" ou "(somme de bleu)". Ils sont juste des explications.
Vous avez manqué la colonne ID dans la table principale. Je l'ai ajouté et j'ai mis à jour le poste. Merci!
Pouvez-vous expliquer ce que vous entendez par "comment je peux écrire une requête"? Si vous pouvez écrire une procédure stockée - vous pouvez écrire la requête alors
@Fabio, je suis capable d'écrire de simples déclarations SQL. Je comprends qu'avec les procédures stockées, vous faites presque tout. Mais je veux juste avoir une seule déclaration sur les données et je ne sais pas comment le faire.