In Bearbeitung Ich will meine Lagerplätze zum Artikel direkt in der Artikelübersicht sehen

ManuelP

JTL-Wawi
Mitarbeiter
2. Januar 2012
2.087
233
Hückelhoven
Hi Manuel,

das ist ganz einfach mit folgendem SQL möglich:

SQL:
SELECT    tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel = @Key
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName
Edit:
  • Anzahl Nachkommastellen angepasst
 
Zuletzt bearbeitet:

tecaustria

Aktives Mitglied
22. Dezember 2014
92
8
Natters
Also des ist echt Cool. Wäre es möglich, die nachkommastellen auf 3 zu reduzieren und evtl. den Typ anzeigen zu lassen?? Hochregal, usw.. die Regale kann man ja typisieren. Bin über einen Eintrag auf Facebook drauf gekommen.
 

Johannes Jorde

Moderator
Mitarbeiter
1. Februar 2012
53
5
Hückelhoven
Hallo,

ich hab den SQL für Vaterartikel angepasst, sodass Ihr nun am Vater den Bestand aller Kindartikel sehen könnt:

SQL:
SELECT  tArtikel.cArtNr AS Artikelnummer,
        tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel in (
            SELECT kArtikel
            FROM tArtikel
            WHERE kVaterArtikel = @Key
            UNION
            SELECT @Key AS kArtikel
         )
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tArtikel.cArtNr
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tArtikel.cArtNr

SQL:
SELECT  (SELECT    cArtNr FROM dbo.tArtikel WHERE kArtikel = tWarenLagerEingang.kArtikel) AS Artikelnummer,
        tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel in (
            SELECT kArtikel
            FROM tArtikel
            WHERE kVaterArtikel = @key
            UNION
            SELECT @key AS kArtikel
         )
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tWarenLagerEingang.kArtikel
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tWarenLagerEingang.kArtikel

Viele Grüße
Johannes

Edit: SQL gilt jetzt für Vater und normale Artikel
Edit2: Fehler bei Bestandsberechnung behoben (P.Laumen)
 
Zuletzt von einem Moderator bearbeitet:

racoon

Gut bekanntes Mitglied
9. August 2012
154
3
Hello, sehr cool :)
Könnte mir das jemand umschreiben für die Lagerplatzkommentare 1+2?
Wir arbeiten noch mit den alten Geschichten.
 

ManuelP

JTL-Wawi
Mitarbeiter
2. Januar 2012
2.087
233
Hückelhoven
Hello, sehr cool :)
Könnte mir das jemand umschreiben für die Lagerplatzkommentare 1+2?
Wir arbeiten noch mit den alten Geschichten.
Klar mein Freund:
SQL:
SELECT  tArtikel.cArtNr AS Artikelnummer,
        tWarenLager.cName AS Warenlager,
        LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')) AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLagerPlatzArtikel ON tWarenLagerPlatzArtikel.kArtikel = tArtikel.kArtikel
    AND tWarenLagerPlatzArtikel.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel in (
            SELECT kArtikel
            FROM tArtikel
            WHERE kVaterArtikel = @Key
            UNION
            SELECT @Key AS kArtikel
         )
GROUP BY    tWarenLager.cName,
            LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
            tArtikel.cArtNr
ORDER BY    tWarenLager.cName,
            LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
            tArtikel.cArtNr

SQL:
SELECT  (SELECT    cArtNr FROM dbo.tArtikel WHERE kArtikel = tWarenLagerEingang.kArtikel) AS Artikelnummer,
        tWarenLager.cName AS Warenlager,
        LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')) AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLagerPlatzArtikel ON tWarenLagerPlatzArtikel.kArtikel = tWarenLagerEingang.kArtikel
    AND tWarenLagerPlatzArtikel.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel in (
            SELECT kArtikel
            FROM tArtikel
            WHERE kVaterArtikel = @Key
            UNION
            SELECT @Key AS kArtikel
         )
GROUP BY    tWarenLager.cName,
            LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
            tWarenLagerEingang.kArtikel
ORDER BY    tWarenLager.cName,
            LTRIM(ISNULL(tWarenLagerPlatzArtikel.cKommentar_1, '') + ' ' + ISNULL(tWarenLagerPlatzArtikel.cKommentar_2, '')),
            tWarenLagerEingang.kArtikel
EDIT: Geht jetzt mit Varkombis und normalen Artikeln
Edit2: Fehler bei Bestandsberechnung behoben (P.Laumen)
 
Zuletzt von einem Moderator bearbeitet:

racoon

Gut bekanntes Mitglied
9. August 2012
154
3
Hallo Manuel,
vielen Dank für deine Mühe echt super der Service!!!

Leider wird bei uns überhaupt nichts angezeigt. Auch die Spaltenbeschriftung nicht. Bei keinem Artikel.
Kann leider nicht sagen warum. Kenne mich mit den Statements nicht aus.
 

Shopworker.de

Offizieller Servicepartner
SPBanner
4. Januar 2011
2.662
151
Arnsberg, Sauerland
Hallo racoon,

du hast dich oben bei deinem Wunsch um Ergänzung auf die Anzeige der Kindartikel bezogen.
Und genau das hat Manuel gemacht, die SQL-Abfrage um die Kommentare 1 und 2 ergänzt; diese werden unter dem Spaltenkopf "Lagerplatz" angezeigt.
Leg mal einen Artikel mit VarKombi-Kindern an, dann siehst du auch die Anzeige der Lagerkommentare 1 und 2.

Edith: Da hab ich wohl zu lange getestet ;)
 
  • Gefällt mir
Reaktionen: ManuelP

racoon

Gut bekanntes Mitglied
9. August 2012
154
3
Hallo Manuel,
Update sieht super aus und funktioniert.
Einzig mini-manko ist, dass die Spalte immer wieder vergrößert werden muss mit den Kommentaren, da dort zum Teil einiges drin steht.
Aber so können wir schon gut mit leben. Herzlichen Dank!!!!!!!!! :)
 

rosi

Aktives Mitglied
19. November 2014
20
0
Hallo,

ich hab den SQL für Vaterartikel angepasst, sodass Ihr nun am Vater den Bestand aller Kindartikel sehen könnt:
SQL:
SELECT  tArtikel.cArtNr AS Artikelnummer,
        tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel in (
            SELECT kArtikel
            FROM tArtikel
            WHERE kVaterArtikel = @Key
            UNION
            SELECT @Key AS kArtikel
         )
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tArtikel.cArtNr
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tArtikel.cArtNr

Viele Grüße
Johannes

Edit: SQL gilt jetzt für Vater und normale Artikel

Es wird aber jetzt die 3 fache menge angezeigt.
 

salve

Aktives Mitglied
13. Juni 2016
56
3
Hi,

ich hätte dazu auch eine Frage.
Wie müsste die Abfrage erweitert werden um auch, falls es sich um einen Kindartikel handelt, die anderen Kinder des Vaterartikels inkl. Bestand anzuzeigen?

Danke für eure Hilfe!
 

Neuer_User

Neues Mitglied
7. Juli 2019
8
0
SQL:
Hi,

ich hätte dazu auch eine Frage.
Wie müsste die Abfrage erweitert werden um auch, falls es sich um einen Kindartikel handelt, die anderen Kinder des Vaterartikels inkl. Bestand anzuzeigen?

Danke für eure Hilfe!
Hallo,

ich hab den SQL für Vaterartikel angepasst, sodass Ihr nun am Vater den Bestand aller Kindartikel sehen könnt:
SQL:
SELECT  tArtikel.cArtNr AS Artikelnummer,
        tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
        CONVERT(money, SUM(tWarenLagerEingang.fAnzahlAktuell)) AS Bestand
FROM dbo.tWarenLagerEingang
JOIN dbo.tArtikel ON tArtikel.kArtikel = tWarenLagerEingang.kArtikel
JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1
JOIN dbo.tWarenLagerPlatz ON tWarenLagerEingang.kWarenLagerPlatz = tWarenLagerPlatz.kWarenLagerPlatz
JOIN dbo.tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
WHERE    tWarenLagerEingang.fAnzahlAktuell > 0.0
         AND tWarenLagerEingang.kArtikel in (
            SELECT kArtikel
            FROM tArtikel
            WHERE kVaterArtikel = @Key
            UNION
            SELECT @Key AS kArtikel
         )
GROUP BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tArtikel.cArtNr
ORDER BY    tWarenLager.cName,
            tWarenLagerPlatz.cName,
            tArtikel.cArtNr

Viele Grüße
Johannes

Edit: SQL gilt jetzt für Vater und normale Artikel
 

Über uns

  • In unserem moderierten JTL-Forum könnt Ihr Euch themenbezogen mit der JTL-Community rund um die Produkte von JTL, passende Erweiterungen und den E-Commerce im Allgemeinen austauschen, Tipps und Tricks teilen sowie Verbesserungswünsche und Fehler diskutieren.

    Unsere Forumsnutzer helfen sich untereinander auch gerne weiter, wenn Sie mal nicht weiterkommen oder einen Ratschlag benötigen.

Schnell-Navigation

Benutzer Menü