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,
CASE
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 0 THEN 'Standard'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 1 THEN 'Regalplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 3 THEN 'Wareneingang'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 4 THEN 'Pickwagen'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 5 THEN 'Klaerplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 6 THEN 'Boxenplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 7 THEN 'Palettenplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 8 THEN 'Ladenlokal'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 9 THEN 'Umlagerungsplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 10 THEN 'Programmintern'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 11 THEN 'Retourenplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = 12 THEN 'Kartonplatz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) IS NULL THEN 'Kein WMS Platz'
WHEN (SELECT kWarenLagerPlatzTyp FROM dbo.tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenLagerEingang.kWarenLagerPlatz) = '' THEN 'Kein WMS Platz'
END AS 'Lagerplatztyp',
CASE
WHEN (SELECT cName FROM tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenlagerArtikelOptionen.kWarenLagerPlatz) IS NULL THEN 'Kein Vorgabeplatz'
WHEN (SELECT cName FROM tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenlagerArtikelOptionen.kWarenLagerPlatz) = '' THEN 'Kein Vorgabeplatz'
ELSE (SELECT cName FROM tWarenLagerPlatz WHERE kWarenLagerPlatz = tWarenlagerArtikelOptionen.kWarenLagerPlatz)
END AS 'Vorgabeplatz'
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
LEFT JOIN dbo.tWarenlagerArtikelOptionen ON dbo.tWarenlagerArtikelOptionen.kArtikel = tWarenlagereingang.kArtikel
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,
tWarenlagerArtikelOptionen.kWarenLagerPlatz,
tWarenLagerEingang.kWarenLagerPlatz
ORDER BY tWarenLager.cName,
tWarenLagerPlatz.cName,
tWarenLagerEingang.kArtikel,
tWarenlagerArtikelOptionen.kWarenLagerPlatz,
tWarenLagerEingang.kWarenLagerPlatz