Puh das übersteigt meine SQL-Kenntnis.
geht's ums Materialverzeichnis?
Da filtere ich auch Sachen raus.
ich mache es so:
Wenn die Materialen nicht rein sollen, schreibe ich unter der Rubrik Bestellnummer "bauseits" (ohne Anführungszeichen).
Mein Standard SQL-Befehl für die Materialliste sieht dann so aus:
WITH nums(n) AS (VALUES (0),(1),(2),(3),(4))
SELECT
printf('%-8s', COALESCE(Folio, '')) AS Seite,
printf('%-8s', COALESCE(label, '')) AS BMK,
printf('%-20s', COALESCE(manufacturer, '')) AS Hersteller,
printf('%-40s',
COALESCE(
CASE n
WHEN 0 THEN designation
WHEN 1 THEN designation_auxiliary1
WHEN 2 THEN designation_auxiliary2
WHEN 3 THEN designation_auxiliary3
WHEN 4 THEN designation_auxiliary4
END, ''
)
) AS Artikelnr,
printf('%-140s',
COALESCE(
CASE n
WHEN 0 THEN description
WHEN 1 THEN description_auxiliary1
WHEN 2 THEN description_auxiliary2
WHEN 3 THEN description_auxiliary3
WHEN 4 THEN description_auxiliary4
END, ''
)
) AS Artikelbeschreibung
FROM element_nomenclature_view
CROSS JOIN nums
WHERE (element_type = 'simple' OR element_sub_type IN ('coil','protection'))
AND label NOT LIKE '%W%'
AND (manufacturer_reference IS NULL OR manufacturer_reference NOT LIKE '%bauseits%')
AND (
n = 0
OR (n = 1 AND TRIM(COALESCE(designation_auxiliary1, '')) <> '')
OR (n = 2 AND TRIM(COALESCE(designation_auxiliary2, '')) <> '')
OR (n = 3 AND TRIM(COALESCE(designation_auxiliary3, '')) <> '')
OR (n = 4 AND TRIM(COALESCE(designation_auxiliary4, '')) <> '')
)
ORDER BY CAST(folio AS INTEGER) ASC, label COLLATE NOCASE ASC, n ASC;
Dort ist dieser Abschnitt drin:
AND (manufacturer_reference IS NULL OR manufacturer_reference NOT LIKE '%bauseits%')
damit wird es rausgefiltert.