Hi,
I've got this ugly case statement that I'd like to hide in a function:
select
...
case when
d.start_date <= CURRENT_DATE and
case when w.show_type in ('cinéma','livre')
then d.start_date >= CURRENT_DATE - 21
else (d.end_date >= CURRENT_DATE or d.end_date is null) end
then '0_actualite'
when
d.start_date > CURRENT_DATE
then '1_agenda'
else '2_archive'
end
as timing
...
from story s
join show w on (s.id_show = w.id_show)
join show_date d on (d.id_show = w.id_show and
d.start_date = (select d2.start_date from show_date d2
where d2.id_show = w.id_show
order by d2.end_date >= CURRENT_DATE desc,
d2.start_date limit 1)
)
...
I could very well create a show_timing(int) function that accepts an
id_show and performs its own, additional, multiple join complex query on
story, show_date, and show.
Is there a way of feeding enough data to the function to avoid another
query?
Thanks,
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster