Daniela Koller: zusätzliche Daten bei GROUP BY abfragen

Beitrag lesen

Hi Andreas

Aber so einfach LEFT JOINS der Art

SELECT p.id as id, p.preis as preis, w.name as name

FROM produkte as p
  LEFT JOIN warengruppen as w
  ON p.wgruppe = w.wgruppe
  WHERE p.preis > 100
  ORDER BY p.preis DESC


>   
> müssten die aktuelleren Versionen doch alle können, oder entdeckst Du darin auch einen fiesen MySQL-Dialekt? ;-)  
  
Evtl ist ein OUTER zwischen LEFT und JOIN nötig, sonst wie gesagt, afair ab Oracle 8 gehts.  
  

> Mal noch ne kleine Stufe komplizierter:  
>   
> ~~~sql

SELECT (SUM(p.preis * p.menge) * w.rabatt) as endpreis, w.wgruppe as warengruppe  

>   FROM produkte as p  
>   LEFT JOIN warengruppen as w  
>   ON p.wgruppe = w.wgruppe  
>   WHERE p.preis > 100  
>   GROUP BY w.wgruppe, w.rabatt  
>   ORDER BY p.preis DESC

Ist das immer noch "Standard genug"? Vielleicht fällt Dir ja spontan eine "Todsünde" auf ;-)

Das könnte evtl Ärger geben da der Preis nicht im Resultat mit drin ist. Manche DBMS können nur nach Feldern sortieren, die auch ausgegeben werden.

Gruss Daniela