J’ai fait la modif sur la requete suivante et c’est OK pour les taxes
Modif 1
ROUND(SUM(s.hp)+SUM(s.hp2)+SUM(s.hp3),2)*1 AS hp,
ROUND(SUM(s.hc)+SUM(s.hc2)+SUM(s.hc3),2)*1 AS hc,
ROUND(SUM(s.hp)+SUM(s.hp2)+SUM(s.hp3)+SUM(s.hc)+SUM(s.hc2)+SUM(s.hc3),2)*1 AS total,
modif 2
then (s.hp*conso_price.hc)/1000*1 else (s.hp+s.hc+s.hp2+s.hc2+s.hp3+s.hc3)*1 END ),2)*conso_taxe.prix)*(1+(conso_tva.valeur/100)),2) ELSE 0 END AS multi_ttc,
SELECT
DATE_FORMAT(s.`rec_date`,"sem %v %y") as categorie ,
conso_taxe.global,
conso_taxe.inte,
conso_taxe.fixe,
ROUND(SUM(s.hp)+SUM(s.hp2)+SUM(s.hp3),2)*1 AS hp,
ROUND(SUM(s.hc)+SUM(s.hc2)+SUM(s.hc3),2)*1 AS hc,
ROUND(SUM(s.hp)+SUM(s.hp2)+SUM(s.hp3)+SUM(s.hc)+SUM(s.hc2)+SUM(s.hc3),2)*1 AS total,
rec_date,
CASE WHEN conso_taxe.inte > 0 THEN ROUND(conso_taxe.prix * round(SUM(CASE WHEN conso_taxe.type_ecq in ("water","oil") THEN s.hc/1000*1 WHEN conso_taxe.type_ecq = "gaz" THEN s.hc*conso_price.hc/1000*1 else s.hc*1 END),2) * (1+(conso_tva.valeur/100)),2) ELSE 0 END AS inte_hc,
CASE WHEN conso_taxe.inte > 0 THEN ROUND(conso_taxe.prix * round(SUM(CASE WHEN conso_taxe.type_ecq in ("water","oil") THEN s.hp/1000*1 WHEN conso_taxe.type_ecq = "gaz" THEN s.hp*conso_price.hc/1000*1 else s.hp*1 END),2) * (1+(conso_tva.valeur/100)),2) ELSE 0 END AS inte_hp,
CASE WHEN conso_taxe.inte > 0 THEN ROUND(conso_taxe.prix * round(SUM(CASE WHEN conso_taxe.type_ecq in ("water","oil") THEN s.hp/1000*1 WHEN conso_taxe.type_ecq = "gaz" THEN s.hp*conso_price.hc/1000*1 ELSE s.hp+s.hc*1 END),2) * (1+(conso_tva.valeur/100)),2) ELSE 0 END AS total_inte,
CASE WHEN conso_taxe.global > 0 THEN ROUND((round(SUM(CASE WHEN conso_taxe.type_ecq in ("water","oil") THEN (s.hp)/1000*1 WHEN conso_taxe.type_ecq = "gaz" then (s.hp*conso_price.hc)/1000*1 else (s.hp+s.hc+s.hp2+s.hc2+s.hp3+s.hc3)*1 END ),2)*conso_taxe.prix)*(1+(conso_tva.valeur/100)),2) ELSE 0 END AS multi_ttc,
CASE WHEN conso_taxe.fixe > 0 THEN ROUND(conso_taxe.prix/(DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1)*(1+(conso_tva.valeur/100)),2) ELSE 0 END AS fixe_day,
CASE WHEN conso_taxe.fixe > 0 THEN ROUND(conso_taxe.prix/(DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1)*(1+(conso_tva.valeur/100))*
(CASE WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin THEN (DATEDIFF("2025-02-10","2025-02-10")+1)
WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" > conso_taxe.date_fin THEN (DATEDIFF(conso_taxe.date_fin,"2025-02-10")+1)
WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" < conso_taxe.date_debut THEN (DATEDIFF("2025-02-10",conso_taxe.date_debut)+1)
ELSE (DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1) END),2)
ELSE 0 END AS fixe_week,
CASE WHEN conso_taxe.fixe > 0 THEN ROUND(conso_taxe.prix/(DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1)*(1+(conso_tva.valeur/100))*
(CASE WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin THEN (DATEDIFF("2025-02-10","2025-02-10")+1)
WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" > conso_taxe.date_fin THEN (DATEDIFF(conso_taxe.date_fin,"2025-02-10")+1)
WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" < conso_taxe.date_debut THEN (DATEDIFF("2025-02-10",conso_taxe.date_debut)+1)
ELSE (DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1) END),2)
ELSE 0 END AS fixe_month,
CASE WHEN conso_taxe.fixe > 0 THEN ROUND(conso_taxe.prix/(DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1)*(1+(conso_tva.valeur/100))*
(CASE WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin THEN (DATEDIFF("2025-02-10","2025-02-10")+1)
WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" > conso_taxe.date_fin THEN (DATEDIFF(conso_taxe.date_fin,"2025-02-10")+1)
WHEN "2025-02-10" between conso_taxe.date_debut and conso_taxe.date_fin and "2025-02-10" < conso_taxe.date_debut THEN (DATEDIFF("2025-02-10",conso_taxe.date_debut)+1)
ELSE (DATEDIFF(conso_taxe.date_fin,conso_taxe.date_debut)+1) END),2)
ELSE 0 END AS fixe_year,
conso_taxe.id,
conso_taxe.libelle ,
conso_taxe.prix ,
rec_date AS cat_jours,
DATE_FORMAT(s.`rec_date`,"%Y") AS annee,
DATE_FORMAT(s.`rec_date`,"%c") AS mois,
DATE_FORMAT(s.`rec_date`,"%e") AS jour,
DATE_FORMAT(s.`rec_date`,"%v") AS semaine,
DATE_FORMAT(s.`rec_date`,"sem %v %y") AS cat_semaine,
DATE_FORMAT(s.`rec_date`,"%b %y") AS cat_month,
DATE_FORMAT(s.`rec_date`,"%y") AS cat_anne
FROM conso_jour s
LEFT JOIN conso_taxe ON UNIX_TIMESTAMP(DATE_FORMAT(rec_date , "%Y-%m-%d")) BETWEEN UNIX_TIMESTAMP( DATE_FORMAT( date_debut, "%Y-%m-%d" ) ) AND UNIX_TIMESTAMP( DATE_FORMAT( date_fin, "%Y-%m-%d")) and conso_taxe.type_ecq = "electricity"
LEFT JOIN conso_tva ON conso_taxe.id_tva = conso_tva.id
LEFT JOIN (SELECT * FROM conso_price WHERE conso_price.type_ecq = "electricity" AND "2025-02-10" BETWEEN conso_price.date_debut AND conso_price.date_fin LIMIT 0,1) conso_price ON conso_price.type_ecq = "electricity" AND s.rec_date BETWEEN conso_price.date_debut AND conso_price.date_fin
WHERE id_eq =17 AND
(`rec_date` BETWEEN "2025-02-10" AND "2025-02-10" )
GROUP by categorie ,conso_taxe.id ORDER BY rec_date ASC
J’ai pas testé pour les taxes fixes mais je pense qu’il n’y a pas de raison pour que cela pose pb
Ce soir je regarde le pb sur la valorisation de l’abonnement
@chris94440