J'essaie d'écrire une requête SQLite qui obtient le nombre total d'occurrences d'une valeur, divisé par mois.SQLite combiner plusieurs requêtes avec colonne partagée
Un exemple de la sortie souhaitée:
Name Jun Jul Aug Sept
John 3 2 5 2
Robert 4 12 45 22
Linda 0 2 1 0
Je veux que le champ Name
seulement le retour des résultats uniques, il sera essentiellement compter chaque fois que « John » est apparu au mois de juin, juillet, etc.
Voici ce que j'ai jusqu'à présent, en utilisant ma base de données réelle. Il travaille à retourner les colonnes de droite et uniques « ReasonDetail », mais les comptes ne sont pas exacts:
SELECT * FROM
(
SELECT ReasonDetail AS Appetite, COUNT(*) AS June
FROM CallRecords
WHERE CallReason = 'Appetite Question'
AND DateTime BETWEEN '2017-06-01 00:00' AND '2017-07-01 00:00'
GROUP BY ReasonDetail
),
(
SELECT COUNT(*) AS July
FROM CallRecords
WHERE CallReason = 'Appetite Question'
AND DateTime BETWEEN '2017-07-01 00:00' AND '2017-08-01 00:00'
GROUP BY ReasonDetail
),
(
SELECT COUNT(*) AS August
FROM CallRecords
WHERE CallReason = 'Appetite Question'
AND DateTime BETWEEN '2017-08-01 00:00' AND '2017-09-01 00:00'
GROUP BY ReasonDetail
)
GROUP BY Appetite
Qu'est-ce que je fais mal ici? Y a-t-il une meilleure façon de compiler les comptes appropriés dans cette situation?
Merci!
C'est excellent et a parfaitement fonctionné. Cependant, la clause "AND" entre les paramètres DateTime est manquante. Si vous mettez à jour votre réponse, je la sélectionnerai. – Zephyr
sure..j'ai raté.la réponse maintenant. –