Bonjour,

Je cherche a créer une colonne et utiliser celle-ci dans la clause where:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT  COUNT(od.id) AS nombre, 
(CASE WHEN cb.checke=1 THEN cb.check_mois ELSE od.date END) AS dat, 
SUM(CASE WHEN od.id_achat_articles<>0 THEN aa.montant ELSE od.debit END) AS depense, 
SUM(CASE WHEN od.id_type_paiement = 1 THEN (CASE WHEN od.id_achat_articles<>0 THEN aa.montant ELSE od.debit END) ELSE 0 END) AS depense_liquide, 
SUM(CASE WHEN od.id_type_paiement = 2 THEN (CASE WHEN od.id_achat_articles<>0 THEN aa.montant ELSE od.debit END) ELSE 0 END) AS depense_cheque, 
SUM(CASE WHEN od.id_achat_articles<>0 THEN (CASE WHEN aa_ft.frais_fixe=1 THEN aa.montant ELSE 0 END) ELSE (CASE WHEN od_ft.frais_fixe=1 THEN od.debit ELSE 0 END) END) AS frais_fixe, 
SUM(CASE WHEN od.id_achat_articles<>0 THEN (CASE WHEN aa_ft.frais_fixe=0 THEN aa.montant ELSE 0 END) ELSE (CASE WHEN od_ft.frais_fixe=0 THEN od.debit ELSE 0 END) END) AS frais_non_fixe, 
(CASE WHEN od.id_achat_articles<>0 THEN aa_ft.id ELSE od_ft.id END) AS id_filtre,
(CASE WHEN od.id_achat_articles<>0 THEN aa_ft.nom ELSE od_ft.nom END) AS nom_filtre 
FROM operation_depenses od 
LEFT JOIN achat_articles aa ON aa.id_achat=od.id_achat_articles 
LEFT JOIN compta_banque cb ON od.id=cb.id_operation_depense    
LEFT JOIN filtres od_ft ON od_ft.id=od.id_filtre  
LEFT JOIN filtres aa_ft ON aa_ft.id=aa.id_filtre  
WHERE (dat BETWEEN '2010-09-09 00:00:00' AND '2014-09-08 23:59:59')     
GROUP BY id_filtre, nom_filtre 
ORDER BY nom_filtre ASC
Voici mon erreur:
Column "DAT" not found; SQL statement:
normale que dat n'existe pas, j'ai créer la colonne suivant la condition:
(CASE WHEN cb.checke=1 THEN cb.check_mois ELSE od.date END) AS dat

Désolé je viens de trouver il fallait mettre directement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE ((CASE WHEN cb.checke=1 THEN cb.check_mois ELSE od.date END) BETWEEN '2010-09-09 00:00:00' AND '2014-09-08 23:59:59')
Résolu