At 22:37 05/09/22, Merlin Moncure wrote:
> >create or replace view VCurPlayer as select * from Player a
> >where a.AtDate = (select Max(b.AtDate) from Player b where a.PlayerID=
> >b.PlayerID);
Here is a trick I use sometimes with views, etc. This may or may not be
effective to solve your problem but it's worth a shot. Create one small
SQL function taking date, etc. and returning the values and define it
immutable. Now in-query it is treated like a constant.
We don't use functions as a rule, but I would be glad to give it a try.
I would most appreciate if you could define a sample function and rewrite
the VCurPlayer view above. Both PlayerID and AtDate are varchar fields.
Another useful application for this feature is when you have nested
views (view 1 queries view 2) and you need to filter records based on
fields from view 2 which are not returned in view 1. Impossible?
in view 2 add clause where v2.f between f_min() and f_max(), them being
immutable functions which can grab filter criteria based on inputs or
values from a table.
Merlin
Best regards,
KC.
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq