par
moogli » 30 sept. 2016, 11:26
donc,
avec ta table et les données suivantes
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (1, '', '', '', '2016-09-30', 'd', 'gfgf', '0', 42.00);
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (2, '', '', '', '2016-09-30', 'd', 'trtrtr', '0', 1337.00);
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (3, '', '', '', '2016-09-30', 'c', 'rtyhtyt', '0', 2000.00);
je récupère les recettes et dépence du mois avec cette requête
SELECT SUM(t) AS TOTAL, typeOperation FROM detail WHERE month(dateOperation) = 9 group by typeOperation;
résultat
du coup, delta sur le mois 2000-1379 = 621.
tu veux tout en une requête (gourmand)
select
(SELECT SUM(t) FROM detail WHERE month(dateOperation) = 9 and typeOperation = 'c') -
(SELECT SUM(t) FROM detail WHERE month(dateOperation) = 9 and typeOperation = 'd')
as delta
delta = 621.00
L'avantage de la première requête c'est que tu peux afficher la somme des recettes et crédits et le delta au besoin.
Pour le solde réel il faut faire sauter la clause sur le mois pour prendre en compte toutes les opérations.
au passage, les colonnes jour, mois, année sont inutiles (y a la date et on l'info simplement avec les mots clef sql comme month, year etc).
@+
donc,
avec ta table et les données suivantes
[sql]INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (1, '', '', '', '2016-09-30', 'd', 'gfgf', '0', 42.00);
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (2, '', '', '', '2016-09-30', 'd', 'trtrtr', '0', 1337.00);
INSERT INTO `detail` (`id`, `jour`, `mois`, `annee`, `dateOperation`, `typeOperation`, `description`, `fixe`, `t`) VALUES (3, '', '', '', '2016-09-30', 'c', 'rtyhtyt', '0', 2000.00);[/sql]
je récupère les recettes et dépence du mois avec cette requête
[sql]SELECT SUM(t) AS TOTAL, typeOperation FROM detail WHERE month(dateOperation) = 9 group by typeOperation;[/sql]
résultat
[code]
TOTAL | typeOperation
1379.00 | d
2000.00 | c
[/code]
du coup, delta sur le mois 2000-1379 = 621.
tu veux tout en une requête (gourmand)
[sql]select
(SELECT SUM(t) FROM detail WHERE month(dateOperation) = 9 and typeOperation = 'c') -
(SELECT SUM(t) FROM detail WHERE month(dateOperation) = 9 and typeOperation = 'd')
as delta[/sql]
delta = 621.00
L'avantage de la première requête c'est que tu peux afficher la somme des recettes et crédits et le delta au besoin.
Pour le solde réel il faut faire sauter la clause sur le mois pour prendre en compte toutes les opérations.
au passage, les colonnes jour, mois, année sont inutiles (y a la date et on l'info simplement avec les mots clef sql comme month, year etc).
@+