SR2
Messages postés46Date d'inscriptionsamedi 17 juillet 2004StatutMembreDernière intervention25 juillet 2006
-
20 juil. 2006 à 22:27
SR2
Messages postés46Date d'inscriptionsamedi 17 juillet 2004StatutMembreDernière intervention25 juillet 2006
-
25 juil. 2006 à 23:24
j'ai trois tables :
DONNEES
ACTES
MONTANT
DATE
GROUPE ACTES
ACTES
TYPE
TRIMESTRES
DATE_DEBUT
DATE_FIN
TRIMESTRE
Je désire obtenir le résultat suivant :
TRIMESTRE,TYPE,NOMBRE D'ACTES,MONTANT
MA REQUËTE INCOMPLETE :
"SELECT TRIMESTRE$.TRIMESTRE_,TRIMESTRE$.ANNEE,GROUPES_ACTES$.TYPE, COUNT(DONNEES$.ACTES)AS [NOMBRE D'ACTES], ROUND(SUM(DONNEES$.[Montant Payé]),2)as SOMME FROM [GROUPES_ACTES$], " + _
"[DONNEES$],[TRIMESTRE$]" + _
" WHERE DONNEES$.ACTES=GROUPES_ACTES$.CODE" + _
" AND DONNEES$.[DATE DES SOINS] BETWEEN TRIMESTRE$.DATE_DEBUT AND TRIMESTRE$.DATE_FIN" + _
" GROUP BY TRIMESTRE$.TRIMESTRE_,TRIMESTRE$.ANNEE, GROUPES_ACTES$.TYPE" + _
" ORDER BY GROUPES_ACTES$.TYPE,TRIMESTRE$.ANNEE,TRIMESTRE$.TRIMESTRE_"
Mon souci est que cette requete ne me renvoie que les données ayant une correspondance d'acte pour les trimestres dont les montant et le nombre sont diff de zéro
or moi je désire obtenir un résultat du type :
Mindiell
Messages postés558Date d'inscriptionjeudi 25 juillet 2002StatutMembreDernière intervention 5 septembre 20071 21 juil. 2006 à 07:42
Salut, tu es très clair, mais pas ta requete ^^
Le truc a faire c'est une jointure externe :
SELECT Trimestre, Type, COUNT(Groupe_actes.Actes), SUM(Montant)
FROM
(Trimestres LEFT OUTER JOIN Donnees
ON Donnees.Date IS BETWEEN Date_debut AND Date_fin )
LEFT OUTER JOIN Groupe_actes
ON Groupe_actes.Actes = Donnees.Actes
GROUP BY Trimestre, Type
ORDER BY Type
J'ai pas mis l'année, vu que tu en parles pas dans ta demande, et que tu ne la montres pas dans tes tables...
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 24 juil. 2006 à 23:44
Salut, Essai avec cette requette :
SELECT
TRIMESTRES_ET_TYPE.TRIMESTRE_,
TRIMESTRES_ET_TYPE.ANNEE,
TRIMESTRES_ET_TYPE.TYPE,
COUNT(DONNEES$.ACTES)AS [NOMBRE D'ACTES],
ROUND(SUM(DONNEES$.[Montant Payé]),2)as SOMME
FROM
(SELECT
TRIMESTRE$.TRIMESTRE_,
GROUPES_ACTES$.TYPE,
TRIMESTRE$.DATE_DEBUT,
TRIMESTRE$.ANNEE,
TRIMESTRE$.DATE_FIN
FROM
TRIMESTRE$
CROSS JOIN
GROUPES_ACTES$) AS TRIMESTRES_ET_TYPE
LEFT OUTER JOIN
DONNEES$
ON
DONNEES$.ACTES=TRIMESTRES_ET_TYPE.CODE
AND
DONNEES$.[DATE DES SOINS]
BETWEEN TRIMESTRES_ET_TYPE.DATE_DEBUT
AND TRIMESTRES_ET_TYPE.DATE_FIN
GROUP BY
TRIMESTRES_ET_TYPE.TRIMESTRE,
TRIMESTRES_ET_TYPE.TYPE
ORDER BY
TRIMESTRES_ET_TYPE.TRIMESTRE,
TRIMESTRES_ET_TYPE.TYPE