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 Test