Jeden zapeklity SQL dotaz

Jan Serak sherry na pikebo.cz
Čtvrtek Březen 30 10:58:47 CEST 2000


Roman LISZKA wrote:
[...]
> 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

Sice presne nerozumim syntaxi left outer join (jen tak zhruba intuitivne),
ale to, co chcete provadet, jednim selectem rozhodne nezvladnete.

Vy totiz potrebujete PDenik zgrupovat jednou podle UcetMD a jednou podle
UcetDal pouze a jen z toho trapneho duvodu, abyste dospel ke spravnym
cislum.

Nazorne: kdyz chcete vytvorit sumy pro UcetMD, dostavate tyto grupy:

> pdenik: Cena    UcetMD  UcetDal
>         200Kc   211     501
	  -------------------
>         500Kc   501     211
	   ------------------
>         10Kc    311     211

a pro UcetDal tyto:

> pdenik: Cena    UcetMD  UcetDal
>         200Kc   211     501
          -------------------
>         500Kc   501     211
>         10Kc    311     211

Tohle jeden SELECT nikdy nemuze dosahnout.

						Jan Serak


Další informace o konferenci Test