Einzelnen Beitrag anzeigen

arnof

Registriert seit: 25. Apr 2013
1.250 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: SQL-Statement zu aufwendig

  Alt 27. Mai 2014, 15:57
Hallo Zusammen,

ich habe eine Tabelle, in der die Artikel und die Kundenbedarfe stehen. Jetzt möchte ich gerne mit einer Query für jeden Disponenten folgende Daten holen:
ArtikelNr, Lieferungen die überfällig sind (Lieferdatum<aktuelles Datum), Summe der Mengen je Artikel für aktuellen Monat, Summe der Mengen je Artikel für nächsten Monat, Summe der Mengen je Artikel für übernächsten Monat.

Ich habe folgendes ausprobiert, aber neben der Tatsache, dass die Werte nicht stimmten, benötigt die Query auch über 30min.... WIe kann ich das geschickter machen?

Delphi-Quellcode:
select concat(liefersituation.watenr,' ',liefersituation.tebez1) as 'Artikel Bezeichnung', sum(t1.ltrest) as Rückstand, sum(t2.ltrest) as 'Bedarf aktueller Monat', sum(t3.ltrest) as 'Bedarf nächster Monat', sum(t4.ltrest) as 'Bedarf übernächster Monat'  from liefersituation
left join liefersituation as t1 on t1.watenr=liefersituation.watenr and t1.ltlite<current_date
left join liefersituation as t2 on t2.watenr=liefersituation.watenr and month(t2.ltlite)=month(current_date)
left join liefersituation as t3 on t3.watenr=liefersituation.watenr and month(t3.ltlite)=month(current_date)+1
left join liefersituation as t4 on t4.watenr=liefersituation.watenr and month(t4.ltlite)=month(current_date)+2
where liefersituation.lpdivk='ssc'  //Disponenten-Kürzel
group by liefersituation.watenr
order by liefersituation.watenr


Vielen Dank
Patrick
der group by stimmt nicht!

i.d.R. musst Du das groupen was Du im select anzeigst, wenn es keine agregatfunktion ist.

Bei MS SQL würde die Anweisung gar nicht so gehen, mysql macht hier was, aber wie Du schon gemerkt hast stimmt das Ergebnis nicht!
  Mit Zitat antworten Zitat