Bin in der Artikelverwaltung und möchte sehen was auf welchem Platz an Bestand liegt:
Spalten:
Warenlagername
Platzname
Bestand
Spalten:
Warenlagername
Platzname
Bestand
SELECT tWarenLager.cName AS Warenlager,
tWarenLagerPlatz.cName AS Lagerplatz,
CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0
AND tWarenLagerEingang.kArtikel = @Key
GROUP BY tWarenLager.cName,
tWarenLagerPlatz.cName
ORDER BY tWarenLager.cName,
tWarenLagerPlatz.cName
Habs angepasst auf 3 Stellen mit Round( {Wert}, 3)
genau dafür ... in anderen Lägern hast du ja keine PlätzeSollte das auch mit WMS funzen?
Ich habs jetzt mal als Typ money konvertiert und komme auf 4 Nachkommastellen. Reicht erstmal oder?leider habe ich nach noch mehr wie 3 Stellen nach dem Komma.
SELECT tArtikel.cArtNr AS Artikelnummer,
tWarenLager.cName AS Warenlager,
tWarenLagerPlatz.cName AS Lagerplatz,
CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0
AND tWarenLagerEingang.kArtikel in (
SELECT kArtikel
FROM tArtikel
WHERE kVaterArtikel = @Key
UNION
SELECT @Key AS kArtikel
)
GROUP BY tWarenLager.cName,
tWarenLagerPlatz.cName,
tArtikel.cArtNr
ORDER BY tWarenLager.cName,
tWarenLagerPlatz.cName,
tArtikel.cArtNr
SELECT (SELECT cArtNr FROM dbo.tArtikel WHERE kArtikel = tWarenLagerEingang.kArtikel) AS Artikelnummer,
tWarenLager.cName AS Warenlager,
tWarenLagerPlatz.cName AS Lagerplatz,
CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0
AND tWarenLagerEingang.kArtikel in (
SELECT kArtikel
FROM tArtikel
WHERE kVaterArtikel = @key
UNION
SELECT @key AS kArtikel
)
GROUP BY tWarenLager.cName,
tWarenLagerPlatz.cName,
tWarenLagerEingang.kArtikel
ORDER BY tWarenLager.cName,
tWarenLagerPlatz.cName,
tWarenLagerEingang.kArtikel
Klar mein Freund:Hello, sehr cool
Könnte mir das jemand umschreiben für die Lagerplatzkommentare 1+2?
Wir arbeiten noch mit den alten Geschichten.
SELECT tArtikel.cArtNr AS Artikelnummer,
tWarenLager.cName AS Warenlager,
LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')) AS Lagerplatz,
CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLagerPlatzArtikel ON tWarenLagerPlatzArtikel.kArtikel = tArtikel.kArtikel
AND tWarenLagerPlatzArtikel.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0
AND tWarenLagerEingang.kArtikel in (
SELECT kArtikel
FROM tArtikel
WHERE kVaterArtikel = @Key
UNION
SELECT @Key AS kArtikel
)
GROUP BY tWarenLager.cName,
LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
tArtikel.cArtNr
ORDER BY tWarenLager.cName,
LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
tArtikel.cArtNr
SELECT (SELECT cArtNr FROM dbo.tArtikel WHERE kArtikel = tWarenLagerEingang.kArtikel) AS Artikelnummer,
tWarenLager.cName AS Warenlager,
LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')) AS Lagerplatz,
CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLagerPlatzArtikel ON tWarenLagerPlatzArtikel.kArtikel = tWarenLagerEingang.kArtikel
AND tWarenLagerPlatzArtikel.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0
AND tWarenLagerEingang.kArtikel in (
SELECT kArtikel
FROM tArtikel
WHERE kVaterArtikel = @Key
UNION
SELECT @Key AS kArtikel
)
GROUP BY tWarenLager.cName,
LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
tWarenLagerEingang.kArtikel
ORDER BY tWarenLager.cName,
LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
tWarenLagerEingang.kArtikel
Hallo,
ich hab den SQL für Vaterartikel angepasst, sodass Ihr nun am Vater den Bestand aller Kindartikel sehen könnt:
SQL:SELECT tArtikel.cArtNr AS Artikelnummer, tWarenLager.cName AS Warenlager, tWarenLagerPlatz.cName AS Lagerplatz, CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand FROM dbo.tWarenLagerEingang JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1 JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0 AND tWarenLagerEingang.kArtikel in ( SELECT kArtikel FROM tArtikel WHERE kVaterArtikel = @Key UNION SELECT @Key AS kArtikel ) GROUP BY tWarenLager.cName, tWarenLagerPlatz.cName, tArtikel.cArtNr ORDER BY tWarenLager.cName, tWarenLagerPlatz.cName, tArtikel.cArtNr
Viele Grüße
Johannes
Edit: SQL gilt jetzt für Vater und normale Artikel
SQL:
Hi,
ich hätte dazu auch eine Frage.
Wie müsste die Abfrage erweitert werden um auch, falls es sich um einen Kindartikel handelt, die anderen Kinder des Vaterartikels inkl. Bestand anzuzeigen?
Danke für eure Hilfe!
Hallo,
ich hab den SQL für Vaterartikel angepasst, sodass Ihr nun am Vater den Bestand aller Kindartikel sehen könnt:
SQL:SELECT tArtikel.cArtNr AS Artikelnummer, tWarenLager.cName AS Warenlager, tWarenLagerPlatz.cName AS Lagerplatz, CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand FROM dbo.tWarenLagerEingang JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1 JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager WHERE tWarenLagerEingang.fAnzahlAktuell > 0.0 AND tWarenLagerEingang.kArtikel in ( SELECT kArtikel FROM tArtikel WHERE kVaterArtikel = @Key UNION SELECT @Key AS kArtikel ) GROUP BY tWarenLager.cName, tWarenLagerPlatz.cName, tArtikel.cArtNr ORDER BY tWarenLager.cName, tWarenLagerPlatz.cName, tArtikel.cArtNr
Viele Grüße
Johannes
Edit: SQL gilt jetzt für Vater und normale Artikel