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 Databases