Hallo Zusammen,
ich versuche eine SQL Abfrage zu erstellen mit der ich am Ende bestimmte Eigene Felder in Form von Spalten ausgeben kann (als Bestandteil eines eigenen Exports mit weiteren Spalten).
Komme damit aber leider gar nicht weiter.
Folgende SQL gibt alle Attribute als Spalten aus (so wie auch der übliche Export):
Folgende SQL gibt nur ein bestimmtes Attribut aus (siehe: https://forum.jtl-software.de/threads/sql-fuer-export-eines-eigenen-feldes.211059/):
Was ich nun möchte ist im Grunde, eine Asuwahl von mehreren Eigenen Felder in mehreren Spalten.
Ich habe es schon ein wenig mit dem PIVOT Befehl versucht, habe aber keine Ahnung wie es gehen könnte. Dafür sind meine SQL Kenntnisse einfach viel zu gering...
Wenn jemand helfen kann oder Hinweise hat, wäre ich dankbar.
Gruß
Felix
ich versuche eine SQL Abfrage zu erstellen mit der ich am Ende bestimmte Eigene Felder in Form von Spalten ausgeben kann (als Bestandteil eines eigenen Exports mit weiteren Spalten).
Komme damit aber leider gar nicht weiter.
Folgende SQL gibt alle Attribute als Spalten aus (so wie auch der übliche Export):
SQL:
SELECT
cArtNr AS 'Artikelnummer',
vStdA.cName AS 'Artikelname',
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 vStandardArtikel vStdA
JOIN tArtikelAttribut on tArtikelAttribut.kArtikel = vStdA.kArtikel
JOIN tAttributSprache on tAttributSprache.kAttribut = tArtikelAttribut.kAttribut
JOIN tArtikelAttributSprache ON tArtikelAttribut.kArtikelAttribut= tArtikelAttributSprache.kArtikelAttribut
JOIN tAttribut ON tAttribut.kAttribut = tArtikelAttribut.kAttribut
JOIN tFeldTyp ON tFeldTyp.kFeldTyp = tAttribut.kFeldTyp
WHERE tArtikelAttributSprache.kSprache = 0
AND cArtNr LIKE 'PT%'
Folgende SQL gibt nur ein bestimmtes Attribut aus (siehe: https://forum.jtl-software.de/threads/sql-fuer-export-eines-eigenen-feldes.211059/):
SQL:
DECLARE @EigenesFeldName VarChar(128)
-- ###### Hier den Namen des Eigenen Feldes Eintragen ######
SET @EigenesFeldName = 'Dein Feld Name'
-- #########################################################
SELECT
cArtNr AS 'Artikelnummer',
vStdA.cName AS 'Artikelname',
@EigenesFeldName 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',
tFeldTyp.cName AS 'Datentyp (sonst autom. ermitteln)'
FROM vStandardArtikel vStdA
JOIN tArtikelAttribut on tArtikelAttribut.kArtikel = vStdA.kArtikel
JOIN tArtikelAttributSprache ON tArtikelAttribut.kArtikelAttribut= tArtikelAttributSprache.kArtikelAttribut
JOIN tAttribut ON tAttribut.kAttribut = tArtikelAttribut.kAttribut
JOIN tFeldTyp ON tFeldTyp.kFeldTyp = tAttribut.kFeldTyp
WHERE tArtikelAttributSprache.kSprache = 0
AND tArtikelAttribut.kAttribut=(SELECT TOP(1) kAttribut FROM tAttributSprache WHERE kSprache = 0 AND cName = @EigenesFeldName)
Was ich nun möchte ist im Grunde, eine Asuwahl von mehreren Eigenen Felder in mehreren Spalten.
Ich habe es schon ein wenig mit dem PIVOT Befehl versucht, habe aber keine Ahnung wie es gehen könnte. Dafür sind meine SQL Kenntnisse einfach viel zu gering...
Wenn jemand helfen kann oder Hinweise hat, wäre ich dankbar.
Gruß
Felix