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 )
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, comment fais-tu ces boucles?
Il ne me reste plus qu'a ajouter mes conditions.
Un grand merci a toi