Hallo Xentral Community,
ich habe eine Bericht-Abfrage erstellt, die auch bisher sehr gut funktioniert. Nun möchte ich jedoch, dass man als Parameter bzw. als Filter nach Artikelkategorien suchen/filtern kann. Ich finde einfach keinen Weg um das hinzubekommen. Ich möchte einfach in der Ansicht eine bestimmte Kategorie auswählen und es werden nur Artikel von dieser Kategorie angezeigt und die dazugehörigen Spalten.
Wo liegt mein Fehler?
Vielen Dank im Voraus! :)
SELECT
a.id AS `artikel-id`,
a.name_de AS artikelname,
a.nummer AS artikelnummer,
CASE
WHEN a.typ = '1_kat' THEN 'Nicht zugeordnet'
WHEN a.typ = '3_kat' THEN 'Nicht zugeordnet'
WHEN a.typ = '5_kat' THEN 'Nicht zugeordnet'
WHEN a.typ = '699_kat' THEN 'HHC-Vapes'
WHEN a.typ = '700_kat' THEN 'HHC-Blüten'
WHEN a.typ = '701_kat' THEN 'HHC-Preroll'
WHEN a.typ = '702_kat' THEN 'CBD-Vapes'
WHEN a.typ = '703_kat' THEN 'CBD-Blüten'
WHEN a.typ = '704_kat' THEN 'CBD-Preroll'
WHEN a.typ = '705_kat' THEN 'THC-P-Vapes'
WHEN a.typ = '706_kat' THEN 'THC-P-Blüten'
WHEN a.typ = '707_kat' THEN 'THC-P-Preroll'
WHEN a.typ = '708_kat' THEN 'Nikotinsalze'
WHEN a.typ = '709_kat' THEN 'Shortfill'
WHEN a.typ = '710_kat' THEN 'Longfill'
WHEN a.typ = '711_kat' THEN 'Zubehör'
WHEN a.typ = '712_kat' THEN 'Sweets'
WHEN a.typ = '713_kat' THEN 'Food'
WHEN a.typ = '714_kat' THEN 'Frühstück'
WHEN a.typ = '715_kat' THEN 'Getränke'
WHEN a.typ = '716_kat' THEN 'Mysterybox'
WHEN a.typ = '717_kat' THEN 'Vape-Einweg'
WHEN a.typ = '718_kat' THEN 'Vape-Mehrweg'
WHEN a.typ = '719_kat' THEN 'SNUS'
WHEN a.typ = '720_kat' THEN 'Shisha-Kohle'
WHEN a.typ = '721_kat' THEN 'Shisha-Kohleanzünder'
WHEN a.typ = '722_kat' THEN 'Shisha-Köpfe'
WHEN a.typ = '723_kat' THEN 'Shisha-Wasserpfeifen'
WHEN a.typ = '724_kat' THEN 'Shisha-Zubehör'
WHEN a.typ = '725_kat' THEN 'Shisha-Tabak'
WHEN a.typ = '726_kat' THEN 'Snacks'
WHEN a.typ = '748_kat' THEN 'HHC-Edibles'
WHEN a.typ = '750_kat' THEN 'CBD-Edibles'
WHEN a.typ = '753_kat' THEN 'Rauch-Zubehör'
WHEN a.typ = '754_kat' THEN 'CBD-Öl'
WHEN a.typ = '770_kat' THEN 'AGSONO'
ELSE a.Typ
END AS artikelkategorie,
CAST(lpi.menge AS DECIMAL(10,0)) AS menge,
CAST(
CASE
WHEN lpi.menge < (SELECT ROUND(AVG(menge),1) FROM lager_platz_inhalt) THEN
(SELECT ROUND(AVG(menge),1) FROM lager_platz_inhalt) - lpi.menge
ELSE NULL
END AS DECIMAL(10,0)
) AS unterbestand,
CAST(
CASE
WHEN lpi.menge > (SELECT ROUND(AVG(menge),1) * 2 FROM lager_platz_inhalt) THEN
lpi.menge - (SELECT ROUND(AVG(menge),1) * 2 FROM lager_platz_inhalt)
ELSE NULL
END AS DECIMAL(10,0)
) AS ueberbestand,
md.mhddatum AS MHD,
(SELECT ep.preis FROM einkaufspreise ep WHERE ep.artikel = a.id ORDER BY ep.preis_anfrage_vom DESC LIMIT 1) AS Einkaufspreis,
(SELECT ep.ab_menge FROM einkaufspreise ep WHERE ep.artikel = a.id ORDER BY ep.preis_anfrage_vom DESC LIMIT 1) AS Ab_Menge,
l.Bezeichnung AS Lagerort
FROM lager_platz_inhalt AS lpi
JOIN lager_platz lp ON lpi.lager_platz = lp.id
JOIN artikel a ON lpi.artikel = a.id
LEFT JOIN lager_mindesthaltbarkeitsdatum md ON a.id = md.artikel
LEFT JOIN lager l ON lp.lager = l.id
WHERE
(
(('{ARTIKELKATEGORIE}' IN ('CBD-Vapes', 'Getränke', '719_kat')) AND ('{ARTIKELKATEGORIE}' = a.typ)) OR
(lpi.menge < (SELECT ROUND(avg(menge),1) FROM lager_platz_inhalt) OR lpi.menge > (SELECT ROUND(avg(menge),1) * 2 FROM lager_platz_inhalt))
)
ORDER BY artikelname
LIMIT 434340;