Andreas@Subke
Neuer Benutzer
- Beiträge
- 3
Ich hab bereits ähnliche Themen im Forum versucht nachzuvollziehen, aber ich stehe hier einfach auf dem Schlauch.
Ich habe eine Tabelle von Lagerplätzen, Artikel, Buchungsdatum und Bestand.
Ich möchte den Warenbestand auf diesem Lagerplatz ermitteln. Also als Ergebnis ungefähr das folgende haben:
Meine Idee: die jeweils letzte Buchung zu jedem Artikel auf dem Lagerplatz herausfiltern & ausgeben lassen. Die WHERE-Bedingung um Bestand=0 herauszufiltern bekomme ich bestimmt noch selber hin, der Knackpunkt ist das GROUP BY... oder einen anderen Weg...
Hier mein Query:
Das GROUP BY wirft mir hier natürlich einen Fehler, dass alle SELECT-Wert in Funktionen verpackt werden sollen. Ich muss gestehen , dass ich häufig mit MySQL arbeite und da das GROUP BY etwas lockerer gehandhabt wird
Ich habe eine Tabelle von Lagerplätzen, Artikel, Buchungsdatum und Bestand.
Lagerplatz | Artikel | Buchungsdatum (vereinfacht) | Bestand |
---|---|---|---|
33364 | 1 | 14 | 56 |
33364 | 2 | 15 | 57 |
33364 | 4 | 16 | 58 |
33364 | 1 | 17 | 59 |
33364 | 5 | 18 | 0 |
33364 | 3 | 19 | 61 |
33364 | 1 | 20 | 62 |
33364 | 2 | 21 | 63 |
33364 | 3 | 22 | 64 |
33364 | 2 | 23 | 65 |
... | ... | ... | ... |
Ich möchte den Warenbestand auf diesem Lagerplatz ermitteln. Also als Ergebnis ungefähr das folgende haben:
Lagerplatz | Artikel | Datum (eigentlich unwichtig, ich will nur den letzten Stand haben) | Bestand |
---|---|---|---|
33364 | 1 | 20 | 62 |
33364 | 2 | 23 | 65 |
33364 | 3 | 22 | 64 |
33364 | 4 | 16 | 58 |
Meine Idee: die jeweils letzte Buchung zu jedem Artikel auf dem Lagerplatz herausfiltern & ausgeben lassen. Die WHERE-Bedingung um Bestand=0 herauszufiltern bekomme ich bestimmt noch selber hin, der Knackpunkt ist das GROUP BY... oder einen anderen Weg...
Hier mein Query:
SQL:
SELECT
[dbo].[tWarenLagerPlatzArtikel].[kWarenLagerPlatz] AS Lagerplatz,
[dbo].[tWarenLagerPlatzArtikel].[kArtikel] AS Artikel,
temp.dGebucht AS Datum,
temp.fLagerBestand AS Bestand
FROM
[dbo].[tWarenLagerPlatzArtikel]
LEFT JOIN
( SELECT kArtikel, dGebucht, fLagerBestand FROM [dbo].[tArtikelHistory] ) temp
ON
temp.[kArtikel] = [dbo].[tWarenLagerPlatzArtikel].[kArtikel]
WHERE
[dbo].[tWarenLagerPlatzArtikel].[kWarenLagerPlatz] ='33364'
GROUP BY [dbo].[tWarenLagerPlatzArtikel].[kArtikel]
ORDER BY [dbo].[tWarenLagerPlatzArtikel].[kArtikel], temp.dGebucht DESC
Das GROUP BY wirft mir hier natürlich einen Fehler, dass alle SELECT-Wert in Funktionen verpackt werden sollen. Ich muss gestehen , dass ich häufig mit MySQL arbeite und da das GROUP BY etwas lockerer gehandhabt wird
