Neu SQL-Afrage: Eigene Felder

karsten.thiemann

Aktives Mitglied
23. Juni 2015
40
3
Hallo Community,

ich hab für meine Artikel ein Eigenes Feld "Lagerfach" erstellt. Dieses würde ich gerne via SQL Abfragen können.

Hier finde ich leider nichts passendes dazu:
Code:
SELECT * FROM tArtikel
 

sam11

Mitglied
24. September 2022
14
0
India
Hallo Community,

ich hab für meine Artikel ein Eigenes Feld "Lagerfach" erstellt. Dieses würde ich gerne via SQL Abfragen können.

Hier finde ich leider nichts passendes dazu:
Code:
SELECT * FROM tArtikel
Ich glaube jedoch, dass Sie eine Datenbank erstellen und Datensätze eindeutig identifizieren möchten. Verwenden Sie dazu einen eindeutigen Schlüssel in SQL, um Felder oder Spalten einer Tabelle festzulegen. Sie können diesen Artikel entweder lesen oder selbst danach suchen. Wenn Sie eine bestimmte Lösung wünschen, beschreiben Sie das Problem bitte genauer.
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
833
305
Hallo Community,

ich hab für meine Artikel ein Eigenes Feld "Lagerfach" erstellt. Dieses würde ich gerne via SQL Abfragen können.

Hier finde ich leider nichts passendes dazu:
Code:
SELECT * FROM tArtikel

Hi,

da die eigenen Felder in separaten Tabellen sind, müsstest du erstmal die ID von deinem Feld herausbekommen. Das kannst du hiermit machen:
SQL:
SELECT kAttribut FROM tAttributSprache where cName = 'Lagerfach'

Danach kannst du das hier in eine eigene Übersicht reinpacken und musst die ID einsetzen statt "[ID]":
SQL:
SELECT
    attrspr.cWertVarchar
FROM
    tArtikel a
    LEFT JOIN tArtikelAttribut attr ON attr.kArtikel = a.kArtikel AND attr.kAttribut = '[ID]'
    LEFT JOIN tArtikelAttributSprache attrspr ON attrspr.kArtikelAttribut = attr.kArtikelAttribut
WHERE
a.kArtikel = @Key

Falls das Lagerfach nur eine Zahl zb ist, kann es sein, dass statt attrspr.cWertVarchar auch attrspr.fWertDecimal stehen muss. Am besten mal testen.

Viele Grüße
Mirko
 
  • Gefällt mir
Reaktionen: Naturkostbar Schweiz

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Hi,

da die eigenen Felder in separaten Tabellen sind, müsstest du erstmal die ID von deinem Feld herausbekommen. Das kannst du hiermit machen:
SQL:
SELECT kAttribut FROM tAttributSprache where cName = 'Lagerfach'

Danach kannst du das hier in eine eigene Übersicht reinpacken und musst die ID einsetzen statt "[ID]":
SQL:
SELECT
    attrspr.cWertVarchar
FROM
    tArtikel a
    LEFT JOIN tArtikelAttribut attr ON attr.kArtikel = a.kArtikel AND attr.kAttribut = '[ID]'
    LEFT JOIN tArtikelAttributSprache attrspr ON attrspr.kArtikelAttribut = attr.kArtikelAttribut
WHERE
a.kArtikel = @Key
Da ja aus [tArtikel] gar keine Daten benötigt bzw. angezeigt werden, könnte man sich den ersten Join sparen und [kArtikel] gleich in [tArtikelAttribut] selektieren.
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
833
305
Da ja aus [tArtikel] gar keine Daten benötigt bzw. angezeigt werden, könnte man sich den ersten Join sparen und [kArtikel] gleich in [tArtikelAttribut] selektieren.
das stimmt natürlich ;)

Also:
SQL:
SELECT
    attrspr.fWertDecimal
FROM
    tArtikelAttribut attr
    LEFT JOIN tArtikelAttributSprache attrspr ON attrspr.kArtikelAttribut = attr.kArtikelAttribut
WHERE
    attr.kArtikel = @Key
    AND attr.kAttribut = '[ID]'
 
  • Gefällt mir
Reaktionen: AquaBavaria

MirkoWK

Sehr aktives Mitglied
14. März 2022
833
305
Hi,

so klappt es zumindest bei mir ;)

ID herausfinden:
SQL:
SELECT * FROM tAttributSprache WHERE cName = '[Name eigenes Feld]'

Eigene Übersicht:
SQL:
SELECT
    cWertVarchar AS '[Attributname]'
FROM
    Kunde.tKundeEigenesFeld
WHERE
    kKunde = @Key
    AND kAttribut = [ID]

Viele Grüße
Mirko
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: AquaBavaria

AquaBavaria

Gut bekanntes Mitglied
11. Juli 2016
210
8
Dankeschön. Die Abfrage läuft bei mir aber leider auf einen Fehler. Habe ich was falsch gemacht?

Meldung 137, Ebene 15, Status 2, Zeile 1
Die @Key-Skalarvariable muss deklariert werden.

Code:
SELECT
cWertVarchar AS 'Leitweg-ID'
FROM
Kunde.tKundeEigenesFeld
WHERE
kKunde = @Key
AND kAttribut = [245]

Das Feld Leitweg-ID ist bei mir ein Freitext feld mit Zahlen als auch Buchstaben. Kann alles mögliche sein
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
833
305
In der eigenen Übersicht wird @Key durch die ID des Kunden ersetzt.
Wenn du direkt im SQL-Tool arbeitest, müsstest du an diese Stelle die ID des Kunden setzen, oder weiter oben deklarieren.

Die [] würde ich bei der 245 noch weglassen.
 
  • Gefällt mir
Reaktionen: AquaBavaria