Pour comprendre la suite, il faut savoir que
GETDATE() représente la date/heure de maintenant
CONVERT(varchar(7),GETDATE(),120) va renvoyer '2009-09' si on est en septembre.
Donc on peut comparer :
CONVERT(varchar(7),GETDATE(),120) et
CONVERT(varchar(7),DateActivationFacture,120)
pour savoir comment la facture se situe par rapport au mois en cours
Donc on fait un test sur la date de facture et on renvoie le montant demandé ou 0 (en fonction du test) dans la fonction SUM pour agréger sur IDMission
1 2 3 4 5 6
| SELECT IDMission,
SUM(CASE WHEN CONVERT(varchar(7),DateActivationFacture,120)<CONVERT(varchar(7),GETDATE(),120) THEN MontantRecouvreeFacture ELSE 0 END) As MontantRecouvreAntérieur,
SUM(CASE WHEN CONVERT(varchar(7),DateActivationFacture,120)=CONVERT(varchar(7),GETDATE(),120) THEN MontantRecouvreeFacture ELSE 0 END) As MontantRecouvreMoisActuel,
SUM(CASE WHEN CONVERT(varchar(7),DateActivationFacture,120)=CONVERT(varchar(7),GETDATE(),120) THEN MontantHTFacture ELSE 0 END) As MontantHTMoisEnCours
FROM Facture
GROUP BY IDMission |
L'aspirine n'est pas fournie
Partager