Neu Artikelverwaltung -> Attribute, eigene Felder, Merkmale anzeigen

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.532
221
Köln
Hi zusammen,

anbei ein SQL, das euch Attribute, eigene Felder und Merkmale des gewählten Artikels anzeigt:

Attribute, eigene Felder, Merkmale.png

SQL:
-- Attribute / Eigene Felder
SELECT
CASE
    WHEN tAttribut.nAusgabeWeg = 0 THEN 'Attribut'
    WHEN tAttribut.nAusgabeWeg > 0 THEN 'Eigenes Feld'
END AS Typ,
tAttributSprache.cName AS 'Name',
CASE
    WHEN tFeldTyp.nDatenTyp = 0 THEN CONVERT(VARCHAR, tArtikelAttributSprache.nWertInt)
    WHEN tFeldTyp.nDatenTyp = 1 THEN CONVERT(VARCHAR, tArtikelAttributSprache.fWertDecimal)
    WHEN tFeldTyp.nDatenTyp = 2 THEN tArtikelAttributSprache.cWertVarchar
    WHEN tFeldTyp.nDatenTyp = 3 THEN CONVERT(VARCHAR, tArtikelAttributSprache.dWertDateTime, 104)
END AS Wert
FROM tartikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN tArtikelAttribut ON tArtikelAttribut.kArtikel = tArtikel.kArtikel
JOIN tAttribut ON tAttribut.kAttribut = tArtikelAttribut.kAttribut
JOIN tFeldTyp ON tFeldTyp.kFeldTyp = tAttribut.kFeldTyp
JOIN tAttributSprache ON tAttributSprache.kAttribut = tArtikelAttribut.kAttribut
    AND tAttributSprache.kSprache =
    CASE
        WHEN tAttribut.nIstMehrsprachig = 1 THEN tSpracheUsed.kSprache
        ELSE 0
    END
JOIN tArtikelAttributSprache ON tArtikelAttributSprache.kArtikelAttribut = tArtikelAttribut.kArtikelAttribut
    AND tArtikelAttributSprache.kSprache =
    CASE
        WHEN tAttribut.nIstMehrsprachig = 1 THEN tSpracheUsed.kSprache
        ELSE 0
    END   
WHERE tartikel.kArtikel = @Key

--Merkmale
UNION
SELECT  'Merkmal' AS Typ,
        tMerkmalSprache.cName AS 'Name',
        tMerkmalWertSprache.cWert AS Wert
FROM tartikel
JOIN dbo.tSpracheUsed ON nStandard = 1
JOIN tArtikelMerkmal ON tArtikelMerkmal.kArtikel = tartikel.kArtikel
JOIN tMerkmal ON tMerkmal.kMerkmal = tArtikelMerkmal.kMerkmal
JOIN tMerkmalSprache ON tMerkmalSprache.kMerkmal = tMerkmal.kMerkmal
    AND tMerkmalSprache.kSprache = tSpracheUsed.kSprache
JOIN tMerkmalWert ON tMerkmalWert.kMerkmalWert = tArtikelMerkmal.kMerkmalWert
JOIN tMerkmalWertSprache ON tMerkmalWertSprache.kMerkmalWert = tMerkmalWert.kMerkmalWert
    AND tMerkmalWertSprache.kSprache = tSpracheUsed.kSprache
WHERE tartikel.kArtikel = @Key
ORDER BY Typ, 'Name'