2017-08-17 8 views
1

Rookie a besoin d'un peu d'aide. Quelqu'un peut-il fournir une requête de compter facilement et puis par des enregistrements de tabuler mois correspondant à deux conditions pour éviter d'utiliser le code répétitif maladroit comme ça ...Compter et tabuler les enregistrements correspondants par mois

SELECT 
SUM(CASE 
    WHEN extract(YEAR FROM `date`) = "2017" 
    AND extract(MONTH FROM `date`) = "07" 
    AND `conditionA` = "A" 
    AND `conditionB` = "B" 
    THEN 1 else 0 END) 
AS 2017_07 

SUM(CASE 
    WHEN extract(YEAR FROM `date`) = "2017" 
    AND extract(MONTH FROM `date`) = "08" 
    AND `conditionA` = "A" 
    AND `conditionB` = "B" 
    THEN 1 else 0 END) 
AS 2017_08 

SUM(CASE 
    WHEN extract(YEAR FROM `date`) = "2017" 
    AND extract(MONTH FROM `date`) = "09" 
    AND `conditionA` = "A" 
    AND `conditionB` = "B" 
    THEN 1 else 0 END) 
AS 2017_09 

FROM `datatable` 
+0

S'il vous plaît jeter un oeil à ce lien (https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) pour en savoir plus sur la façon d'améliorer la question et ne pas poster des images – TheGameiswar

+0

Merci. Je suis tout à fait pour poser de meilleures questions, mais j'ai besoin d'éclaircissements sur ce que j'aurais dû faire différemment. Ma question semble assez concise et j'ai posté une requête formatée. J'ai reçu une solution immédiate et exacte au problème, aussi simple soit-elle. Suggérez-vous que j'aurais dû afficher des données de tableau pour quelque chose d'aussi simple? – Livefish

+0

si vous pouvez jeter un oeil sur le lien que j'ai posté, il vous aide .. vous n'avez posté aucune donnée de table, résultat attendu, résultat actuel – TheGameiswar

Répondre

3

Mettez les données en lignes, non colonnes:

SELECT extract(YEAR FROM `date`) as yyyy, extract(MONTH FROM `date`) as mm, 
     COUNT(*) 
FROM datatable 
WHERE `conditionA` = 'A' AND `conditionB` = 'B' 
GROUP BY extract(YEAR FROM `date`), extract(MONTH FROM `date`) 
ORDER BY yyyy, mm ; 
+0

Parfait. Je vous remercie! – Livefish