Neu Alle Stücklisten einer Komponente ausgeben

AlexMT-Commerce

Sehr aktives Mitglied
11. August 2017
288
66
Hi Leute, ich benötige eine SQL Abfrage, die alle Artikelnummern der Stücklisten ausgibt, zu der ein Artikel gehört. Hat da jemand was parat? :) Also im Endeffekt genau die Liste, die man bekommt wenn man auf einen Artikel klickt unter "verknüpfte Artikel" -> "Stücklisten"

Hintergrund: Sobald der Mindestbestand einer Komponente unterschritten ist möchte ich mit einem Workflow alle zugehörigen Stücklisten um eine gewisse Summe im Preis erhöhen.
 

MirkoWK

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

das hier sollte funktionieren:

SQL:
SELECT
    a2.cArtNr
FROM
    tArtikel a
    LEFT JOIN tStueckliste sl ON sl.kArtikel = a.kArtikel
    LEFT JOIN tArtikel a2 ON a2.kArtikel = sl.kVaterArtikel
WHERE
    a.kArtikel = [ID des Artikels]

Viele Grüße
Mirko
 
  • Ich liebe es
Reaktionen: AlexMT-Commerce

AlexMT-Commerce

Sehr aktives Mitglied
11. August 2017
288
66
Hi,

das hier sollte funktionieren:

SQL:
SELECT
    a2.cArtNr
FROM
    tArtikel a
    LEFT JOIN tStueckliste sl ON sl.kArtikel = a.kArtikel
    LEFT JOIN tArtikel a2 ON a2.kArtikel = sl.kVaterArtikel
WHERE
    a.kArtikel = [ID des Artikels]

Viele Grüße
Mirko
Hey, das hat mir schon mal geholfen! Hab es grade so versucht:

Code:
{% capture query -%}\

SELECT
    a2.cArtNr
FROM
    tArtikel a
    LEFT JOIN tStueckliste sl ON sl.kArtikel = a.kArtikel
    LEFT JOIN tArtikel a2 ON a2.kArtikel = sl.kVaterArtikel
WHERE
    a.kArtikel = {{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer }}
{% endcapture -%}
{% assign result = query | DirectQueryScalar -%}
{{ result }}

Leider gibt mir der Code nur die erste Stückliste aus nicht alle Stücklisten des Artikels.

Edit:
Code:
{% assign result = query | DirectQuery -%}
{% for item in result.Daten -%}
{{ item }}
{% endfor -%}
Damit bekomme ich alle raus, leider sieht das Ergebnis so aus:
[cArtNr, StklArtNr]
[cArtNr, StklArtNr]
[cArtNr, StklArtNr]

Ich benötige einfach:
StklArtNr
StklArtNr
StklArtNr
 
Zuletzt bearbeitet:

DaveShow

Aktives Mitglied
8. Januar 2020
21
1
Hallo,

ich möchte mich hier einmal dranhängen.
Der Code funktioniert bei uns einwandfrei.
Da wir diesen Code für einen Workflow benötigen, wäre es super, wenn nach der Artikelnummer auch der dazugehörige Name ausgegeben wird.
Wie muss der Code diesbzgl. geändert werden.
Leider sind meine Bemühungen bisher erfolglos gewesen - aber auch kein wunder, da ich davon nicht viel Ahnung habe :D

ausprobiert habe ich unter anderem folgendes:
{% capture query -%}\
SELECT
a2.cArtNr,
a.cName
FROM
tArtikel a
LEFT JOIN tStueckliste sl ON sl.kArtikel = a.kArtikel
LEFT JOIN tArtikel a2 ON a2.kArtikel = sl.kVaterArtikel
WHERE
a.kArtikel = {{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer }}
{% endcapture -%}

{% assign result = query | DirectQuery -%}
{% for item in result.Daten -%}
{{ item.cArtNr }} - {{ item.cName }} <br>
{% endfor -%}


Für die Hilfe möchte ich bereits vorab bedanken!
 

DaveShow

Aktives Mitglied
8. Januar 2020
21
1
EDIT:
Was ist noch vergessen habe.
Falls der Artikel in keiner Stückliste enthalten ist, soll "keine" oder Ähnliches ausgegeben werden
 

MirkoWK

Sehr aktives Mitglied
14. März 2022
830
305
so sollte es funktionieren:

Code:
{%- capture query -%}
SELECT
a2.cArtNr,
b.cName
FROM
tArtikel a
LEFT JOIN tStueckliste sl ON sl.kArtikel = a.kArtikel
LEFT JOIN tArtikel a2 ON a2.kArtikel = sl.kVaterArtikel
LEFT JOIN tArtikelBeschreibung b ON b.kArtikel = a2.kArtikel AND b.kSprache = 1 AND b.kPlattform = 1
WHERE
a.kArtikel = {{ Vorgang.Allgemein.Stammdaten.InterneArtikelnummer }}
{%- endcapture -%}
{%- assign result = query | DirectQuery -%}
{%- for item in result.Daten -%}
{%- if item.cArtNr | IsFilled -%}{{ item.cArtNr }} - {{ item.cName }} <br>{%- else -%}In keiner Stückliste enthalten{%- endif -%}
{%- endfor -%}