[lug-ld] SQL anyone?

Klaus Wünschel kwj at gmx.de
Di Feb 18 19:52:27 CET 2014


Hallo,

nur für den Fall, dass es sich bei der verwendeten Datenbank nicht um
MySQL handelt...

Bei PostgreSQL oder Oracle könntest du Window-Functions zur Ermittlung
des Rangs eines Artikels innerhalb des Monats benutzen, z.B.

RANK() OVER (PARTITION BY TO_CHAR(auftragsdatum, 'WW.YYYY') ORDER BY
SUM(preis) DESC)

Siehe auch
http://www.postgresql.org/docs/9.1/static/tutorial-window.html

Damit lassen sich viele Sub-Selects auf einfache Weise überflüssig
machen.

Gruß
Klaus

Am Tue, 18 Feb 2014 11:44:00 +0000
schrieb "Wagner, Steffen Tobias" <Steffen.Tobias.Wagner at sap.com>:

> Moin,
> 
> MySQL:
> 
> zum Thema gruppieren (-> GROUP BY WEEK… & SORT BY WEEK…):
> z.b. http://stackoverflow.com/questions/6710342/mysql-grouping-by-week
> 
> Zum Thema Join von mehreren Tabellen (-> INNER JOIN):
> z.B. http://www.mysqltutorial.org/mysql-inner-join.aspx
> 
> Deine Anforderung sollte problemlos in einer Abfrage machbar sein.
> 
> Gruß Steffen
> 
> 
> 
> From: lug-ld-bounces at lists.lug-ld.de
> [mailto:lug-ld-bounces at lists.lug-ld.de] On Behalf Of Ekki Plicht
> (DF4OR) Sent: Dienstag, 18. Februar 2014 12:31 To: Allgemeine
> Mailingliste der Linux-User-Group Landau Subject: [lug-ld] SQL anyone?
> 
> 
> Moin.
> Ich bräuchte mal Hilfe bei einer SQL-Abfrage.
> 
> Tabelle 1
> id, Auftragsnummer, auftragsdatum
> 
> Tabelle 2
> Auftrags-id, Artikel, Preis
> 
> Es gibt also viele Aufträge mit jeweils einer oder mehreren
> Positionen (Artikel).
> 
> Ich suche  nun folgendes Ergebnis :
> Woche, Artikel, Preis
> 
> Im Klartext : gruppiert nach Woche alle Artikel die in dieser Woche
> verkauft wurden, zusammen gefasst die Preise jeden Artikels,
> sortiert nach den top 5 Artikeln
> 
> Ich will also wissen:
> Welche Artikel waren meine Renner (Top 5) je Woche?
> 
> Geht das überhaupt mit einer Abfrage? Ich habe es mit sub selects
> probiert aber nicht hingekommen....
> 
> Danke!
> Ekki