Zdravím, mohl by mě prosím někdo popostrčit? Zasekl jsem se na triviální věci a už pro stromy nevidím les:( Mám dvě tabulky a na první volám UPDATE. Je v ní sloupec id_rs který je PK a pak sloupec pocatek_obdobi do kterého potřebuju doplnit datum z druhé tabulky. V druhé tabulce je taky sloupec id_rs ale ten není PK, protože zde může být pro jedno id_rs několik různých datumů, např. takto:
ID_RS OBDOBI
187 2009-11-01
187 2009-12-01
187 2010-01-01
188 2009-11-01
188 2009-12-01
190 2009-11-01
atd. A já potřebuju do první tabulky doplnit vždy nejvyšší datum vztahující se k danému ID. Mám tedy dotaz:
UPDATE seznam
SET seznam.pocatek_obdobi=CelkovePredpisy.obdobi_do
FROM @seznamSmluv AS seznam
INNER JOIN tb_predpisy_celkove AS CelkovePredpisy
ON seznam.id_rs=CelkovePredpisy.id_rs
kde ale není ošetřeno že se mi vrátí MAX hodnota. Pokud tam zkusím propašovat klauzuli MAX:
UPDATE seznam
SET seznam.pocatek_obdobi=MAX(CelkovePredpisy.obdobi_do)
FROM @seznamSmluv AS seznam
INNER JOIN tb_predpisy_celkove AS CelkovePredpisy
ON seznam.id_rs=CelkovePredpisy.id_rs
pošle mě to do háje s hláškou: An aggregate may not appear in the set list of an UPDATE statement. Jak by se toto dalo elegantně vyřešit?
|