Salut !
j'ai la requête suivante :
je voudrais dans la clause where tester sur la colonne 3 qui doit être de type date si on tient compte du résultat du case dans la clause Select.
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
18
19
20
21
22
23
24
25
26
27
28
29
30 select tb_sr.code_sr, tb_sr.nom_sr, case when not(tb_sr_service.date_bilan is null) then tb_sr_service.date_bilan else tb_energie.date_mois end date_bilan, sum( tb_energie.montant_facture ) facture, sum( tb_sr_service.volume_releve ) volume, sum( tb_frais_exploitations.frais_total ) frais_exp, -- ratio (coalesce(sum( tb_energie.montant_facture ), 0) + coalesce(sum( tb_frais_exploitations.frais_total ), 0) ) / nullif(sum( tb_sr_service.volume_releve ), 0) ratio from tb_sr left outer join tb_sr_service on (tb_sr.code_sr = tb_sr_service.code_sr) left outer join tb_energie on (tb_sr_service.code_sr = tb_energie.code_sr) and (tb_sr_service.date_bilan = tb_energie.date_mois) left outer join tb_sr_arret on (tb_energie.code_sr = tb_sr_arret.code_sr) and (tb_energie.date_mois = tb_sr_arret.date_bilan) and (tb_sr_arret.code_sr = tb_sr.code_sr) left outer join tb_frais_exploitations on (tb_sr_service.code_sr = tb_frais_exploitations.code_sr) and (tb_sr_service.date_bilan = tb_frais_exploitations.date_mois) where (3 between cast(:d_debut as date) and cast(:d_fin as date )) group by 1, 2, 3 order by 1, 2, 3
Lors de l'exécution, IB me donne bien un compo de type date ce qui est logique mais il me retourne par contre un message d'erreur de conversion de type. J'ai pensé à caster les deux variables d'entrée mais j'ai toujours cette même erreur.
Peut-être que le champs dans la clause where ne supporte pas le numéro de colonne seule ?
Merci de me lire.
Partager