Bonjour, je remercie tous ceux qui répondu à mon appel au secours car je galère vraiment sur ce cas là, alors que la date butoir sur ce projet arrive à grand pas. Voilà je vais essayer de bien expliquer sur mes attentes concernant la requête que j'ai l'intention de réaliser:
J'aimerais afficher dynamiquement le nombre de stade de feuillaison par mois ou par année suivant la commande initialiser coté client
exemple1 si par mois
stade_feuillaison October November
V0 5 0
V1 0 20
V2 4 10
V3 7 0
V4 10 4
V5 0 0
Total 26 34
exemple2 si par mois an
stade_feuillaison 2018 2019
V0 115 100
V1 0 20
V2 4 10
V3 7 0
V4 10 4
V5 0 0
Total 136 124
Pour l'instant j'ai pu mettre en place cette requête que je vous ai déjà montré au tout début:
SELECT coalesce(feuillaison.stade_feuillaison, 'Total') as stade_feuillaison,
COALESCE(IF(DATE_FORMAT(date_suivi_espece_cible,'%m')=10,COUNT(feuillaison.stade_feuillaison),NULL),0) Octobre,
COALESCE(IF(DATE_FORMAT(date_suivi_espece_cible,'%Y')=11,COUNT(feuillaison.stade_feuillaison),NULL),0) Novembre
FROM suivi_espece_cible
JOIN espececible_suivi ON espececible_suivi.id_espececible_suivi=suivi_espece_cible.id_espececible_suivi
JOIN feuillaison ON feuillaison.id_feuillaison=suivi_espece_cible.id_feuillaison
WHERE espececible_suivi.id_espece=13
GROUP BY feuillaison.stade_feuillaison WITH ROLLUP;
cela m'a bien sortie la structure illustré sur l'exemple1 et l'exemple2 mais le COUNT() affiche 0 car elle ne reconnait pas la condition que j'ai effectuer IF(DATE_FORMAT(date_suivi_espece_cible,'%m')=10, donc est ce que quelqu'un connait un moyen de solutionné cela, Remarque j'ai essayé de remplacer le bout de code
COALESCE(IF(DATE_FORMAT(date_suivi_espece_cible,'%m')=10,COUNT(feuillaison.stade_feuillaison),NULL),0) Octobre,
COALESCE(IF(DATE_FORMAT(date_suivi_espece_cible,'%Y')=11,COUNT(feuillaison.stade_feuillaison),NULL),0) Novembre
par
SUM(IF(DATE_FORMAT(date_suivi_espece_cible,'%m')=10,COUNT(feuillaison.stade_feuillaison),0)) Octobre,
SUM(IF(DATE_FORMAT(date_suivi_espece_cible,'%Y')=11,COUNT(feuillaison.stade_feuillaison),0)) Novembre
et la condition IF(DATE_FORMAT(date_suivi_espece_cible,'%m')=10 marchait très bien seulement au lieu de faire un count() des nombres de ligne par stade_feuillaison cela m'a additionné les clé étrangère par stade_feuillaison ce qui n'est pas le but souhaité.
Je vous ai mis ici la structure de ma base avec un jeu d'essaie copie conforme à la mienne! Merci d'avance pour votre aide
-- Structure de la table `espece`
--
CREATE TABLE IF NOT EXISTS `espece` (
`id_espece` int(11) NOT NULL AUTO_INCREMENT,
`nomBinomial` varchar(255) NOT NULL,
`espece` varchar(255) NOT NULL,
`genre` varchar(255) NOT NULL,
`type_espece` varchar(255) NOT NULL,
`famille` varchar(255) NOT NULL,
`nom_vernac` varchar(50) NOT NULL,
`statuts` varchar(255) NOT NULL,
`utilisation` varchar(255) NOT NULL,
PRIMARY KEY (`id_espece`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=22 ;
--
-- Contenu de la table `espece`
--
INSERT INTO `espece` (`id_espece`, `nomBinomial`, `espece`, `genre`, `type_espece`, `famille`, `nom_vernac`, `statuts`, `utilisation`) VALUES
(1, 'Asterpeia amblyocarpa', 'Asterpeia ', 'amblyocarpa', 'Flore', 'ASTERACEAE', 'Manokamavo,manoky,manoky fotsy,manoky mena,andravo', 'CR', 'Bois de construction (SCHATZ, 1999)'),
(2, 'Weinmannia commersonii', 'Weinmannia ', 'commersonii', 'Flore', 'CUNONIACEAE', 'hotraka,lalo,lalona', 'EN', 'Bois de construction,bois de chauffe,fruit comestible'),
(3, 'Dalbergia louveli', 'Dalbergia ', 'louveli', 'Flore', 'FABACEAE', 'Andramena', 'EN CITES II', 'Bois d''oeuvre et bois de construction'),
(4, 'Dalbergia maritima', 'Dalbergia ', 'maritima', 'Flore', 'FABACEAE', 'Volombodipona,tombobitsy(Antanosy)', 'EN CITES II', 'Bois d''oeuvre et bois de construction'),
(5, 'Dalbergia normandii', 'Dalbergia ', 'normandii', 'Flore', 'FABACEAE', 'Voamboana', 'EN CITES II', 'Bois d''oeuvre et bois de construction'),
(6, 'Tina thouarsiana', 'Tina ', 'thouarsiana', 'Flore', 'SAPINDACEAE', 'Hazompoza,ramiavondafa,somotrorana', 'EN', 'Bois de construction'),
(7, 'Leptolaena multiflora', 'Leptolaena ', 'multiflora', 'Flore', 'SARCOLAENACEAE', 'Anjananjana,azananzana,birana,dilatra', 'EN', 'Bois de construction'),
(8, 'Calophyllum chapelieri', 'Calophyllum ', 'chapelieri', 'Flore', 'ANACARDIACEAE', 'Foraha,makaleony,sorapaha,vintanina,vintaninaberav', 'VU', 'Bois de construction et manche à outil'),
(9, 'Symphonia fasciculata', 'Symphonia ', 'fasciculata', 'Flore', 'CLUSIACEAE', 'Hazimberavina,hazina,hazinibe,kijy,kizavavy,fatra', 'VU', 'Bois de construction,bois de chauffe,huile essentielle,plante medicinale'),
(10, 'Cordyla haraka', 'Cordyla ', 'haraka', 'Flore', 'FABACEAE', 'Haraka', 'VU', 'Manche à outil,gaulette,cercueil'),
(11, 'Dalbergia baroni', 'Dalbergia ', 'baroni', 'Flore', 'FABACEAE', 'Hazovolo,voamboana', 'VU CITES II', 'Bois d''oeuvre et bois de construction'),
(12, 'Dalbergia chapelieri', 'Dalbergia ', 'chapelieri', 'Flore', 'FABACEAE', 'Savoka,soroka,sovoka', 'VU CITES II', 'Bois d''oeuvre et bois de construction'),
(13, 'Dalbergia madagascariensis', 'Dalbergia ', 'madagascariensis', 'Flore', 'FABACEAE', 'Hazovola,hazovola mena,hazovolo,manary,manary be,m', 'VU CITES II', 'Bois d''oeuvre et bois de construction'),
(14, 'Dalbergia monticola', 'Dalbergia ', 'monticola', 'Flore', 'FABACEAE', 'Voamboana(Perinet);Hazovola(Maroantsetra);Tsiandal', 'VU CITES II', 'Bois d''oeuvre et bois de construction'),
(15, 'Labramia bojeri', 'Labramia ', 'bojeri', 'Flore', 'SAPOTACEAE', 'Felambarika,fotajana', 'VU', 'Bois de construction'),
(16, 'Canarium lamianum', 'Canarium ', 'lamianum', 'Flore', 'BURSERACEAE', 'Ramy', 'DD', 'Bois de construction'),
(17, 'Canarium obovatum', 'Canarium ', 'obovatum', 'Flore', 'BURSERACEAE', 'Ramy', 'DD', 'Bois de construction,manche à outil,gaulette,production de gomme'),
(18, 'Ocotea alveolata', 'Ocotea ', 'alveolata', 'Flore', 'LAURACEAE', 'Varongy,varongilahy,varongimainty,varongimena', 'DD', 'Bois d''oeuvre et bois de construction'),
(19, 'Ocotea racemosa', 'Ocotea ', 'racemosa', 'Flore', 'LAURACEAE', 'Varongifotsy,varongikely,varongilahy,varongimainty', 'DD', 'Bois d''oeuvre et bois de construction,fruit comestible'),
(20, 'Faucherea tampolensis', 'Faucherea ', 'tampolensis', 'Flore', 'SAPOTACEAE', 'Nanto,nantobariatra,natobariatra,natoboraka,natoji', 'DD', 'Bois de construction'),
(21, 'Ardeola idea ', 'Ardeola ', 'idea ', 'Faune', 'ARDEIDAE', 'Héron crabier blanc', 'Attraction touristique', 'EN');
-- --------------------------------------------------------
-- Structure de la table `site_coketes`
--
CREATE TABLE IF NOT EXISTS `site_coketes` (
`id_sitecoketes` int(11) NOT NULL AUTO_INCREMENT,
`nom_sitecoketes` varchar(255) NOT NULL,
`superficie_sitecoketes` float(15,2) DEFAULT NULL,
`statut` varchar(255) DEFAULT NULL,
`etat` int(11) DEFAULT NULL,
PRIMARY KEY (`id_sitecoketes`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=19 ;
--
-- Contenu de la table `site_coketes`
--
INSERT INTO `site_coketes` (`id_sitecoketes`, `nom_sitecoketes`, `superficie_sitecoketes`, `statut`, `etat`) VALUES
(1, 'Tampolo', NULL, 'Nouvelle aire protégée', 1),
(2, 'Pointe à Larrée', NULL, 'Nouvelle aire protégée', 1),
(3, 'Betampona', NULL, 'Réserve naturelle intégrale', 1),
(4, 'Manombo', NULL, 'Réserve spéciale', 1),
(5, 'Agnalazaha(Mahabo mananivo)', NULL, 'Nouvelle aire protégée', 1),
(6, 'Ambongamarina', 0.00, '', 1),
(7, 'Tsiazompaniry', NULL, NULL, 1),
(8, 'Bekorakaka', NULL, NULL, 1),
(9, 'Sandrandahy', NULL, NULL, 1),
(10, 'Ranomafana', NULL, 'Parc national', 1),
(11, 'Mahavavy Kinkony', NULL, 'Nouvelle aire protégée', 1),
(12, 'Ankarafantsika', NULL, 'Parc national', 1),
(13, 'Bemanevika', NULL, 'Aire protégée', 1),
(14, 'Mandrozo', NULL, 'Aire protégée', 1),
(15, 'Tsimembo Manambolomaty', NULL, 'Aire protégée', 1),
(16, 'Ambondrobe(Ankevo)', NULL, 'Nouvelle aire protégée', 1),
(17, 'Tsimbazaza', NULL, 'Parc', 1),
(18, 'Central', NULL, NULL, 1);
-- --------------------------------------------------------
--
-- Structure de la table `espececible_suivi`
--
CREATE TABLE IF NOT EXISTS `espececible_suivi` (
`id_espececible_suivi` int(11) NOT NULL AUTO_INCREMENT,
`numero_espececible` varchar(255) CHARACTER SET utf8 NOT NULL,
`longitude` varchar(255) CHARACTER SET utf8 NOT NULL,
`latitude` varchar(255) CHARACTER SET utf8 NOT NULL,
`altitude` varchar(255) CHARACTER SET utf8 NOT NULL,
`id_espece` int(11) NOT NULL,
`id_sitecoketes` int(11) NOT NULL,
PRIMARY KEY (`id_espececible_suivi`),
KEY `id_sitecoketes` (`id_sitecoketes`),
KEY `id_espece` (`id_espece`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-- --------------------------------------------------------
-- Structure de la table `feuillaison`
--
CREATE TABLE IF NOT EXISTS `feuillaison` (
`id_feuillaison` int(11) NOT NULL AUTO_INCREMENT,
`stade_feuillaison` varchar(50) NOT NULL,
`description` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_feuillaison`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Contenu de la table `feuillaison`
--
INSERT INTO `feuillaison` (`id_feuillaison`, `stade_feuillaison`, `description`) VALUES
(1, ' Stade V0', 'rameaux nus, sans feuilles'),
(2, ' Stade V1', 'formation des bourgeons foliaires'),
(3, ' Stade V2', ' bourgeons foliaires + feuilles épanouies'),
(4, ' Stade V3', 'feuillage développé et abondant sur rameaux'),
(5, ' Stade V4', ' feuilles vertes + feuilles sèches ou ayant changé de couleur'),
(6, ' Stade V5', 'plus de 50% des organes dc l''individu ont des feuilles sèches et chute des feuilles');
-- --------------------------------------------------------
--
-- Structure de la table `suivi_espece_cible`
--
CREATE TABLE IF NOT EXISTS `suivi_espece_cible` (
`id_suivi_espececible` int(11) NOT NULL AUTO_INCREMENT,
`date_suivi_espece_cible` date DEFAULT NULL,
`observation_espececible` text,
`id_espececible_suivi` int(11) DEFAULT NULL,
`id_feuillaison` int(11) DEFAULT NULL,
PRIMARY KEY (`id_suivi_espececible`),
KEY `id_feuillaison` (`id_feuillaison`),
KEY `id_espececible_suivi` (`id_espececible_suivi`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-- --------------------------------------------------------
-- Contenu de la table `suivi_espece_cible`
--
INSERT INTO `suivi_espece_cible` (`id_suivi_espececible`, `date_suivi_espece_cible`, `observation_espececible`, `id_espececible_suivi`,`id_feuillaison`) VALUES
(1, '2019-10-13', 'ok', 1, 3),
(2, '2019-10-01', 'ok', 1, 4),
(3, '2019-10-31', 'ok', 1, 4),
(4, '2019-10-30', 'ok', 1, 3),
(5, '2019-10-31', 'ok', 1, 3),
(6, '2019-10-31', 'ok', 1, 2),
(7, '2019-10-30', 'ok', 1, 4),
(8, '2019-11-11', 'ok', 1, 1);