SQO ABFRAGE LAGERPLATZ KOMNENTAR

Mike.H.

Gut bekanntes Mitglied
4. Dezember 2019
116
5
Heusenstamm
Hallo,

Wie kann ich zusätzlich mit SQL die Lagerplatzkommentare abragen? Liede bin ich nur Leihe auf diesem Gebiet.
Vielen lieben Dank euch schoon mal.



DECLARE @artikel_name nvarchar(100)
SELECT @artikel_name = cName FROM tArtikelBeschreibung WHERE kArtikel = @Key AND kPlattform = 1

SELECT @artikel_name AS 'Artikel',
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
 

Anhänge

  • Lagerplatz.PNG
    Lagerplatz.PNG
    7,8 KB · Aufrufe: 6

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.313
365
DECLARE @artikel_name nvarchar(100)
SELECT @artikel_name = cName FROM tArtikelBeschreibung WHERE kArtikel = @Key AND kPlattform = 1

SELECT @artikel_name AS 'Artikel',
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
Ich weiß zwar nicht genau, was du vorhast, aber da der Artikelname nicht im GROUP BY enthalten ist, würde ich mal behaupten, dass diese Abfrage nicht das macht, was du erreichen willst ;)

Du kannst das ganze Konstrukt z.B. so um schreiben und dann kann dir jemand der die 1.6 kennt sicherlich sagen, wie du da noch die Kommentare reinbastelst:

SQL:
SELECT
    a.cName AS Artikel, l.cName AS Warenlager, lp.cName AS Lagerplatz,
    CONVERT(money, SUM(le.fAnzahlAktuell)) AS Bestand
FROM
    tArtikelBeschreibung a
    JOIN tWarenLagerEingang le  ON le.kArtikel = a.kArtikel AND le.fAnzahlAktuell > 0.0
    JOIN tWarenLagerPlatz lp ON le.kWarenLagerPlatz = lp.kWarenLagerPlatz
    JOIN tWarenLager l ON lp.kWarenLager = l.kWarenLager
GROUP BY a.cName, l.cName, lp.cName
ORDER BY l.cName, lp.cName, a.cName

Wie gesagt ist deine Frage "Wie kann ich zusätzlich mit SQL die Lagerplatzkommentare abragen?" etwas dürftig ausformuliert.
Man weiß gar nicht genau, was eigentlich dein Ziel ist. Aber generell gilt: Schau dir erstmal die bereits bestehenden Views an, ob da nicht schon was ähnliches dabei ist.
 
  • Gefällt mir
Reaktionen: Mike.H.

Mike.H.

Gut bekanntes Mitglied
4. Dezember 2019
116
5
Heusenstamm
Ich weiß zwar nicht genau, was du vorhast, aber da der Artikelname nicht im GROUP BY enthalten ist, würde ich mal behaupten, dass diese Abfrage nicht das macht, was du erreichen willst ;)

Du kannst das ganze Konstrukt z.B. so um schreiben und dann kann dir jemand der die 1.6 kennt sicherlich sagen, wie du da noch die Kommentare reinbastelst:

SQL:
SELECT
    a.cName AS Artikel, l.cName AS Warenlager, lp.cName AS Lagerplatz,
    CONVERT(money, SUM(le.fAnzahlAktuell)) AS Bestand
FROM
    tArtikelBeschreibung a
    JOIN tWarenLagerEingang le  ON le.kArtikel = a.kArtikel AND le.fAnzahlAktuell > 0.0
    JOIN tWarenLagerPlatz lp ON le.kWarenLagerPlatz = lp.kWarenLagerPlatz
    JOIN tWarenLager l ON lp.kWarenLager = l.kWarenLager
GROUP BY a.cName, l.cName, lp.cName
ORDER BY l.cName, lp.cName, a.cName

Wie gesagt ist deine Frage "Wie kann ich zusätzlich mit SQL die Lagerplatzkommentare abragen?" etwas dürftig ausformuliert.
Man weiß gar nicht genau, was eigentlich dein Ziel ist. Aber generell gilt: Schau dir erstmal die bereits bestehenden Views an, ob da nicht schon was ähnliches dabei ist.
Danke erst mal. Das Ziel soll sein, wenn ich auf ein Artikel klicke. Soll es bei der eigenen Übersicht mir dann zusätzlich noch den Inhalt der Kommentare anzeigen. Da haben wir Informationen hinterlegt. Für was die Plätze sind.
 

wortek

Offizieller Servicepartner
SPBanner
1. Juli 2016
1.486
302
Landsberg am Lech
Danke erst mal. Das Ziel soll sein, wenn ich auf ein Artikel klicke. Soll es bei der eigenen Übersicht mir dann zusätzlich noch den Inhalt der Kommentare anzeigen. Da haben wir Informationen hinterlegt. Für was die Plätze sind.
Code:
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2' 
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kArtikel = @key
UNION
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2' 
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kVaterArtikel = @key
UNION
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2' 
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kArtikel IN (SELECT tStueckliste.kArtikel FROM tartikel JOIN tStueckliste ON tStueckliste.kStueckliste = tartikel.kStueckliste WHERE tartikel.kArtikel = @key)
ORDER BY tartikel.cArtNr

Screenshot .jpg
 
  • Gefällt mir
Reaktionen: Mike.H.

Mike.H.

Gut bekanntes Mitglied
4. Dezember 2019
116
5
Heusenstamm
Code:
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2'
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kArtikel = @key
UNION
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2'
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kVaterArtikel = @key
UNION
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2'
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kArtikel IN (SELECT tStueckliste.kArtikel FROM tartikel JOIN tStueckliste ON tStueckliste.kStueckliste = tartikel.kStueckliste WHERE tartikel.kArtikel = @key)
ORDER BY tartikel.cArtNr

Den Anhang 93592 betrachten
Vielen lieben Dank für deine Hilfe. Du bist der beste. Schönen Abend.
 

Mike.H.

Gut bekanntes Mitglied
4. Dezember 2019
116
5
Heusenstamm
Code:
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2'
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kArtikel = @key
UNION
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2'
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kVaterArtikel = @key
UNION
select    tartikel.cArtNr 'Artikelnummer',
        tWarenLager.cName AS 'Lager',
        cKommentar_1 AS 'Kommentar 1',
        cKommentar_2 AS 'Kommentr 2'
from tWarenLagerPlatzArtikel
JOIN tWarenLagerPlatz ON tWarenLagerPlatz.kWarenLagerPlatz = tWarenLagerPlatzArtikel.kWarenLagerPlatz
JOIN tWarenLager ON tWarenLagerPlatz.kWarenLager = tWarenLager.kWarenLager
JOIN tartikel ON tWarenLagerPlatzArtikel.kArtikel = tartikel.kArtikel
where kWarenLagerPlatzTyp = 0
    AND (cKommentar_1 IS NOT NULL OR cKommentar_1 != '' OR cKommentar_2 IS NOT NULL OR cKommentar_2 != '')
    AND tartikel.kArtikel IN (SELECT tStueckliste.kArtikel FROM tartikel JOIN tStueckliste ON tStueckliste.kStueckliste = tartikel.kStueckliste WHERE tartikel.kArtikel = @key)
ORDER BY tartikel.cArtNr

Den Anhang 93592 betrachten
 

Mike.H.

Gut bekanntes Mitglied
4. Dezember 2019
116
5
Heusenstamm
Einen schönen guten Morgen nach Landsberg,
Danke noch mal für den Code. Was ich vergessen habe zu erwähnen ist das wir WMS benutzen und mehrere Lager benutzen.
Daher weine Frage was muss ich ändern das er mir die WMS Lager anzeigt anstatt das Standard Lager.

Ich danke schon mal für Eure Hilfe.
 

Anhänge

  • Lager-Wms.PNG
    Lager-Wms.PNG
    3,4 KB · Aufrufe: 2

wortek

Offizieller Servicepartner
SPBanner
1. Juli 2016
1.486
302
Landsberg am Lech
Einen schönen guten Morgen nach Landsberg,
Danke noch mal für den Code. Was ich vergessen habe zu erwähnen ist das wir WMS benutzen und mehrere Lager benutzen.
Daher weine Frage was muss ich ändern das er mir die WMS Lager anzeigt anstatt das Standard Lager.

Ich danke schon mal für Eure Hilfe.
Code:
SELECT    tWarenLager.cName AS Warenlager,
        tWarenLagerPlatz.cName AS Lagerplatz,
       ROUND(CONVERT(FLOAT, ISNULL(SUM(tWarenLagerEingang.fAnzahlAktuell), 0.0)), 2) 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
 
  • Gefällt mir
Reaktionen: Mike.H.

Ähnliche Themen