Faire apparaitre la colonne dans mon tableau même si sum(montant) est null
Résolu
botitine
-
botitine -
botitine -
Bonjour à tous,
Je profite de cette période de confinement pour me remettre à coder.
Je suis en train de faire un tableau de frais voici ma requete
Je fais ensuite une boucle avec des <td></td>.
Le soucis est que si j'ai une depense qui n'a pas eu de montant à un mois donné, les colonnes ne décalent ce qui est logique.
J'ai créer une table mois avec la jointure
j'ai fait des IF, des case et coalesce...
Mais ça ne marche toujours pas...
Une âme charitable pourrait-elle m'aider ?
Merci d'avance
Je profite de cette période de confinement pour me remettre à coder.
Je suis en train de faire un tableau de frais voici ma requete
SELECT IFNULL(SUM(montant_cdv),0) AS total, MONTH(date_cdv) AS mois FROM cdv
LEFT JOIN `rcaisse` ON `rcaisse`.`id` = `cdv`.`id_caisse`
LEFT JOIN `rcomptable` ON `rcomptable`.`id` = `rcaisse`.`id_rcompt`
LEFT JOIN `gt_rcomptable` ON `gt_rcomptable`.`id_rcomptable` = `rcomptable`.`id`
LEFT JOIN `rcaisse_tab_cdv` ON `rcaisse_tab_cdv`.`rcompt` = `rcomptable`.`id`
WHERE type = :cdv
AND nom = :secteur
AND entite_cdv = :entite
GROUP BY MONTH(cdv)
ORDER BY MONTH(date) ASC
Je fais ensuite une boucle avec des <td></td>.
Le soucis est que si j'ai une depense qui n'a pas eu de montant à un mois donné, les colonnes ne décalent ce qui est logique.
J'ai créer une table mois avec la jointure
JOIN mois ON MONTH(date_cdv) = mois.id
j'ai fait des IF, des case et coalesce...
Mais ça ne marche toujours pas...
Une âme charitable pourrait-elle m'aider ?
Merci d'avance
Configuration: Windows / Firefox 75.0
A voir également:
- Faire apparaitre la colonne dans mon tableau même si sum(montant) est null
- Tableau word - Guide
- Déplacer colonne excel - Guide
- Tableau ascii - Guide
- Trier colonne excel - Guide
- Comment faire apparaître la tabulation sur word - Guide
11 réponses
Petite correction
SELECT IFNULL(SUM(montant_cdv),0) AS total
,seq AS mois
FROM
(
SELECT 1 AS seq
UNION SELECT 2 AS seq
UNION SELECT 3 AS seq
UNION SELECT 4 AS seq
UNION SELECT 5 AS seq
UNION SELECT 6 AS seq
UNION SELECT 7 AS seq
UNION SELECT 8 AS seq
UNION SELECT 9 AS seq
UNION SELECT 10 AS seq
UNION SELECT 11 AS seq
UNION SELECT 12 AS seq
) AS SEQ
LEFT JOIN cdv C ON SEQ.seq = MONTH(C.date_cdv)
GROUP BY seq
ORDER BY seq ASC
Bonjour,
et comme ça ?
et comme ça ?
SELECT SAQ.seq
,T.total
FROM
(
SELECT 1 AS seq
UNION SELECT 2 AS seq
UNION SELECT 3 AS seq
UNION SELECT 4 AS seq
UNION SELECT 5 AS seq
UNION SELECT 6 AS seq
UNION SELECT 7 AS seq
UNION SELECT 8 AS seq
UNION SELECT 9 AS seq
UNION SELECT 10 AS seq
UNION SELECT 11 AS seq
UNION SELECT 12 AS seq
) AS SEQ
LEFT JOIN (
SELECT IFNULL(SUM(montant_cdv),0) AS total, MONTH(C.date_cdv) AS mois
FROM cdv C
LEFT JOIN `rcaisse` ON `rcaisse`.`id` = C.`id_caisse`
LEFT JOIN `rcomptable` ON `rcomptable`.`id` = `rcaisse`.`id_rcompt`
LEFT JOIN `gt_rcomptable` ON `gt_rcomptable`.`id_rcomptable` = `rcomptable`.`id`
LEFT JOIN `rcaisse_tab_cdv` ON `rcaisse_tab_cdv`.`rcompt` = `rcomptable`.`id`
WHERE type_cdv = :cdv
AND nom = :secteur
AND entite_cdv = :entite
GROUP BY MONTH(C.date_cdv)
) T ON SEQ.seq = T.mois
ORDER BY seq ASC
Bonjour,
Tu bosses sur sqlServer tu es sûr ?
pas plutôt sur mysql ?
Ensuite, ton souci se situe au niveau de la requête ou bien au niveau de ton code ( php ? )
Qu'obtiens tu ?
Que veux tu obtenir ?
NB: A l'avenir, merci de préciser le LANGAGE dans les balises de code afin d'avoir la coloration syntaxique et l'indentation.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Tu bosses sur sqlServer tu es sûr ?
pas plutôt sur mysql ?
Ensuite, ton souci se situe au niveau de la requête ou bien au niveau de ton code ( php ? )
Qu'obtiens tu ?
Que veux tu obtenir ?
NB: A l'avenir, merci de préciser le LANGAGE dans les balises de code afin d'avoir la coloration syntaxique et l'indentation.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Bonjour,
Merci de ta réponse.
Oui c'est du mysql. je n'ai pas trouvé le forum adéquat et je n'ai pas voulu mettre dans "php"...
Désolé pour mon erreur.
J’obtiens un tableau dans ce style :
| janvier | Février | Mars |
| 12 | 23 |
Si Janvier est vide, Février se met sous Janvier
J'aimerai avoir
| janvier | Février | Mars |
| 0 | 12 | 23 |
Merci de ta réponse.
Oui c'est du mysql. je n'ai pas trouvé le forum adéquat et je n'ai pas voulu mettre dans "php"...
Désolé pour mon erreur.
J’obtiens un tableau dans ce style :
| janvier | Février | Mars |
| 12 | 23 |
Si Janvier est vide, Février se met sous Janvier
J'aimerai avoir
| janvier | Février | Mars |
| 0 | 12 | 23 |
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essaye un truc du genre
SELECT IFNULL(SUM(montant_cdv),0) AS total
,MONTH(date_cdv) AS mois
FROM
(
SELECT 1 AS seq
UNION SELECT 2 AS seq
UNION SELECT 3 AS seq
UNION SELECT 4 AS seq
UNION SELECT 5 AS seq
UNION SELECT 6 AS seq
UNION SELECT 7 AS seq
UNION SELECT 8 AS seq
UNION SELECT 9 AS seq
UNION SELECT 10 AS seq
UNION SELECT 11 AS seq
UNION SELECT 12 AS seq
) AS SEQ
LEFT JOIN cdv C ON SEQ.seq = MONTH(C.date_cdv)
LEFT JOIN `rcaisse` ON `rcaisse`.`id` = C.`id_caisse`
LEFT JOIN `rcomptable` ON `rcomptable`.`id` = `rcaisse`.`id_rcompt`
LEFT JOIN `gt_rcomptable` ON `gt_rcomptable`.`id_rcomptable` = `rcomptable`.`id`
LEFT JOIN `rcaisse_tab_cdv` ON `rcaisse_tab_cdv`.`rcompt` = `rcomptable`.`id`
WHERE type = :cdv
AND nom = :secteur
AND entite_cdv = :entite
GROUP BY MONTH(C.date_cdv)
ORDER BY MONTH(C.date_cdv) ASC
Merci pour ta réponse ;).
J'ai malheureusement déjà essayer la sous requête fixe avec les union mais ça ne marche pas :'(
J'ai le même résultat
| janvier | Février | Mars |
| 12 | 23 |
J'ai malheureusement déjà essayer la sous requête fixe avec les union mais ça ne marche pas :'(
J'ai le même résultat
| janvier | Février | Mars |
| 12 | 23 |
Oui j'ai testé sur via phpMyAdmin
le resultat :
total mois
22.44 3
0.79 4
il n'y a pas le mois 2 à 0
ma table
-- Structure de la table `cdv`
le resultat :
total mois
22.44 3
0.79 4
il n'y a pas le mois 2 à 0
ma table
-- Structure de la table `cdv`
CREATE TABLE `cdv` ( `id_cdv` int(11) NOT NULL, `type_cdv` int(11) NOT NULL, `date_cdv` date NOT NULL, `montant_cdv` decimal(20,2) NOT NULL, `id_caisse` int(11) NOT NULL, `entite_cdv` int(11) NOT NULL )
Il ne me reste plus qu'a ajouter mes conditions.
Un grand merci a toi