view a parametry subselektu (PG 7.1)
Jiri Borik
jiri.borik na volny.cz
Čtvrtek Říjen 31 05:42:14 CET 2002
Ahoj vespolek,
mam tabulku doklad(idd,...) a k ni tabulku zmen historie(idd,datum,popis).
Chci udelat pohled dkl, ktery obsahuje vsechna pole z doklad a datum a
popis poslednich dvou zmen z historie.
Pokud zapisu pozadovany vyber pro jedno cislo dokladu, vypada to takto:
select * from doklad,
(select datum as dat1, popis as pop1 from historie where idd='2002A00002'
order by datum desc limit 1 ) as h1,
(select datum as dat2, popis as pop2 from historie where idd='2002A00002'
order by datum desc limit 1,1 ) as h2
where idd='2002A00002';
To ale neni pro definci view pouzitelne. Jak zapsat obecne vazbu idd ze
subselektu do hlavniho dotazu ? Zkousel jsem misto subselektu pouzit left
outer join, ale tam zase nejde omezit pocet radek historie.
A jeste k optimalizaci view:
Rekneme, ze udelam "select * from dkl where <podm>", kde <podm> lze
vyhodnotit v puvodni tabulce doklad dle indexu. Prevede se v ramci view
podminka do dotazu pro doklad ? Nedopadne to nahodou tak, ze se nejdrive
udela "select * from doklad" a na kompletnim vyberu se spusti sekvencni
vyber dle <podm> ?
Jirka Borik <jiri.borik na volny.cz>
Další informace o konferenci Test