Hallo zusammen,
ich stehe auf dem Schlauch und brauche mal einen Schubs.
Ich habe 3 Tabellen:
1. Artikel
2. Lager
3. Lagerbewegung
Das Ziel ist die Anzeige aller Artikel mit aktuellem Bestand und der Anzahl der Bewegungen in einem bestimmten Jahr für Belege mit 8-stelliger Belegnummer.
Meine Abfrage dazu:
Das funktioniert auch soweit und das Ergebnis ist:
Das Problem ist jetzt, wenn ein Jahr abgefragt wird, in dem keine Bewegung war:
Hier kommt kein Ergebnis, aber das Ziel ist, dass nur die Anzahl_Bewegungen leer oder 0 ist, z.B.
ich stehe auf dem Schlauch und brauche mal einen Schubs.
Ich habe 3 Tabellen:
1. Artikel
ARTIKELNR | BEZEICHNUNG |
110099 | Anlagenschlüssel - Silca |
2. Lager
ARTIKELNR | LAGERNR | BESTAND |
110099 | 1 | 13 |
110099 | 5 | 2 |
3. Lagerbewegung
ARTIKELNR | LAGERNR | MENGE | BELEGNUMMER | DATUM |
110099 | 1 | 2 | 1 | 2016-11-15 13:14:00.000 |
110099 | 1 | 5 | 20738602 | 2020-03-13 15:14:05.000 |
110099 | 1 | -5 | 20389075 | 2020-03-16 15:00:06.000 |
110099 | 1 | 2 | 20398756 | 2020-07-24 14:40:25.000 |
110099 | 5 | 5 | 20398756 | 2020-07-24 14:40:25.000 |
Das Ziel ist die Anzeige aller Artikel mit aktuellem Bestand und der Anzahl der Bewegungen in einem bestimmten Jahr für Belege mit 8-stelliger Belegnummer.
Meine Abfrage dazu:
SQL:
select a.ARTIKELNR, max(a.BEZEICHNUNG) Bezeichnung, sum(l.buchbestand) akt_Bestand, l.LAGERNR, count(lb.artikelnr) Anzahl_Bewegungen
from Artikel a
left join LAGER l on a.ARTIKELNR = l.ARTIKELNR
left join Lagerbewegung lb on a.ARTIKELNR = lb.ARTIKELNR and l.lagernr = lb.LAGERNR
where a.ARTIKELNR = '110099'
and len(lb.BELEGNUMMER) = 8
and year(lb.DATUM) = 2020
group by a.ARTIKELNR, l.LAGERNR
;
ARTIKELNR | Bezeichnung | akt_Bestand | LAGERNR | Anzahl_Bewegungen |
110099 | Anlagenschlüssel - Silca | 13 | 1 | 3 |
110099 | Anlagenschlüssel - Silca | 2 | 5 | 1 |
Das Problem ist jetzt, wenn ein Jahr abgefragt wird, in dem keine Bewegung war:
SQL:
select a.ARTIKELNR, max(a.BEZEICHNUNG) Bezeichnung, sum(l.buchbestand) akt_Bestand, l.LAGERNR, count(lb.artikelnr) Anzahl_Bewegungen
from Artikel a
left join LAGER l on a.ARTIKELNR = l.ARTIKELNR
left join Lagerbewegung lb on a.ARTIKELNR = lb.ARTIKELNR and l.lagernr = lb.LAGERNR
where a.ARTIKELNR = '110099'
and len(lb.BELEGNUMMER) = 8
and year(lb.DATUM) = 2019
group by a.ARTIKELNR, l.LAGERNR
;
ARTIKELNR | Bezeichnung | akt_Bestand | LAGERNR | Anzahl_Bewegungen |
110099 | Anlagenschlüssel - Silca | 13 | 1 | |
110099 | Anlagenschlüssel - Silca | 5 | 4 | |
Zuletzt bearbeitet von einem Moderator: