Numéro de colonne dans un where
Salut !
j'ai la requête suivante :
Code:
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 |
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.
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.