Jeden zapeklity SQL dotaz
Roman LISZKA
webmaster na www.hledam.cz
Čtvrtek Březen 30 10:43:58 CEST 2000
Mam zdrojove tabulky s temito sloupci:
osnova: IDUcet
pdenik: Cena,UcetMD,UcetDal
kde UcetMD a UcetDal obsahuji hodnoty z Osnova.IDUcet
Cilova tabulka - sumy za jednotlive ucty se sloupci: IDUcet,SumaMD,
SumaDal
Napr.
pdenik: Cena UcetMD UcetDal
200Kc 211 501
500Kc 501 211
10Kc 311 211
osnova: IDUcet
211
311
501
vysledek:
IDUcet SumaMD SumaD
211 200 510
311 10 NULL
501 500 200
Pokud mne zajima jeden sumacni sloupce, da se pouzit dotaz:
select Osnova.IDUcet, sum(MD.Cena) as MDSuma
from Osnova
left outer join PDenik MD on Osnova.IDUcet=MD.MDUcet
group by Osnova.IDUcet
coz funguje, ale pri rozsireni na:
select Osnova.IDUcet, sum(MD.Cena) as MDSuma, sum(DAL.Cena) as DalSuma
from Osnova
left outer join PDenik MD on Osnova.IDUcet=MD.MDUcet
left outer join PDenik DAL on Osnova.IDUcet=Dal.DalUcet
group by Osnova.IDUcet
vyjde: IDUcet SumaMD SumaD
211 400 510
311 10 NULL
501 500 200
Je pro ucet 211 a hodnotu SumaMD n-nasobek, kde n je pocet vyskytu v
sloupci PDenik.UcetDal a na realnych datech z toho vylezou uplne
nesmysly.
Poradi nekdo, zda jde toto vyresit jednim SQL dotazem, pokud mozno
neslozenym(nevnorenym)?
Roman LISZKA
Další informace o konferenci Databases