Neu Verkaufsübersicht Lieferantenbestand

FulfillmentBremen

Aktives Mitglied
3. Juni 2022
16
5
Hey 3jojojo,

Wenn du folgende Abfrage bzw. Übersicht (bei Artikeln) reinnimmst, dann sollte es klappen. Benennen kannst du sie ja beliebig.


SELECT
LA.dlbgeaendert AS 'Zuletzt geändert',
L.cfirma AS 'Lieferant',
LA.cliefartnr AS 'Artikelnummer des Lieferanten',
CAST(LA.fLagerbestand AS INT) AS 'Lagerbestand'
FROM
dbo.tliefartikel AS LA
INNER JOIN
dbo.tartikel AS A ON LA.tartikel_kartikel = A.kartikel
INNER JOIN
dbo.tlieferant AS L ON LA.tlieferant_klieferant = L.klieferant
WHERE
LA.tartikel_kartikel = @Key
ORDER BY
LA.dlbgeaendert DESC;

Diese Abfrage zeigt dir folgendes:
  • Das Datum, wann der Artikel zuletzt geändert wurde (Zuletzt geändert).
  • Den Namen des Lieferanten des Artikels (Lieferant).
  • Die Artikelnummer, wie sie vom Lieferanten verwendet wird (Artikelnummer des Lieferanten).
  • Den Lagerbestand des Artikels, und zwar als ganze Zahl ohne Nachkommastellen (Lagerbestand).
Sie sortiert die Ergebnisse basierend auf dem Datum, wann der Artikel zuletzt geändert wurde - und zwar mit den neuesten Änderungen zuerst.
 

3jojojo

Sehr aktives Mitglied
20. Januar 2016
780
44
Hey 3jojojo,

Wenn du folgende Abfrage bzw. Übersicht (bei Artikeln) reinnimmst, dann sollte es klappen. Benennen kannst du sie ja beliebig.


SELECT
LA.dlbgeaendert AS 'Zuletzt geändert',
L.cfirma AS 'Lieferant',
LA.cliefartnr AS 'Artikelnummer des Lieferanten',
CAST(LA.fLagerbestand AS INT) AS 'Lagerbestand'
FROM
dbo.tliefartikel AS LA
INNER JOIN
dbo.tartikel AS A ON LA.tartikel_kartikel = A.kartikel
INNER JOIN
dbo.tlieferant AS L ON LA.tlieferant_klieferant = L.klieferant
WHERE
LA.tartikel_kartikel = @Key
ORDER BY
LA.dlbgeaendert DESC;

Diese Abfrage zeigt dir folgendes:
  • Das Datum, wann der Artikel zuletzt geändert wurde (Zuletzt geändert).
  • Den Namen des Lieferanten des Artikels (Lieferant).
  • Die Artikelnummer, wie sie vom Lieferanten verwendet wird (Artikelnummer des Lieferanten).
  • Den Lagerbestand des Artikels, und zwar als ganze Zahl ohne Nachkommastellen (Lagerbestand).
Sie sortiert die Ergebnisse basierend auf dem Datum, wann der Artikel zuletzt geändert wurde - und zwar mit den neuesten Änderungen zuerst.
Danke dir für die schnelle Hilfe aber das klappt nicht :( da wird nur für einen ARtikel was rausgesucht
 

3jojojo

Sehr aktives Mitglied
20. Januar 2016
780
44
Habe aber auch gerade schon was gefunden:

Code:
SELECT tartikel.cArtNr AS 'ArtNr',

  tArtikelBeschreibung.cName AS 'Artikelname',

    ROUND(CONVERT(FLOAT, jArtikel.nAnzahl),2) AS 'Menge',

    ROUND(CONVERT(FLOAT,jArtikel.fVKNetto),2) AS 'Netto VK (Auftrag)',

    ROUND(CONVERT(FLOAT,jArtikel.fEKNetto),2) AS 'EK Netto (Auftrag)',

    ROUND(CONVERT(FLOAT,tArtikel.fEKNetto),2) AS 'EK Netto (Artikel)',

    ROUND(CONVERT(FLOAT,tArtikel.fVKNetto),2) AS 'Netto VK (Artikel)',

    jArtikel.cHinweis AS 'Positionshinweis',

    tartikel.cHAN AS 'Herstellerartikelnummer',

    tLieferant.cFirma AS 'Standardlieferant',

    ROUND(CONVERT(FLOAT,tliefartikel.fLagerbestand),2) AS 'Lieferantenbestand'

FROM tartikel

JOIN (

SELECT tArtikel_kArtikel, tbestellpos.nAnzahl, tBestellpos.fVKNetto,tbestellpos.fEKNetto,tBestellpos.cHinweis

FROM tbestellpos

WHERE tBestellung_kBestellung = @Key

AND tArtikel_kArtikel > 0

) AS jArtikel ON jArtikel.tArtikel_kArtikel = tartikel.kArtikel

JOIN dbo.tSpracheUsed ON nStandard = 1

JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel

AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache

AND tArtikelBeschreibung.kPlattform=1

LEFT JOIN dbo.tliefartikel ON tliefartikel.tArtikel_kArtikel = tArtikel.kArtikel AND tliefartikel.nStandard = 1

LEFT JOIN dbo.tlieferant ON tLieferant.kLieferant = tliefartikel.tLieferant_kLieferant AND tliefartikel.nStandard = 1

Da ist der Lieferantenbestand dabei. Nur was wenn es mehrere Lieferanten mit Bestand gibt?
 

3jojojo

Sehr aktives Mitglied
20. Januar 2016
780
44
aber eine Frage.... Kann man die eigenen Übersichten eigentlich auch so Interaktiv machen (Artikel auf Einkaufliste setzen mit Rechtsklick) wie die normalen Übersichten oder sind die eigenen Übersichten reine Ausgaben??
 

marsblau

Aktives Mitglied
7. September 2019
86
8
Schade dass viele Schreiben "habe ich schon selbst gelöst" ... aber die Lösung den anderen Suchenenden vorenthalten!
Mich würde die Lösung interessieren.

Und zwar in der Verkaufsansicht bei mehreren vorhandenen Lieferanten zu einem Artikel:
Lieferantname1 | Ek-Preis1 | Lieferantenbestand1 | Lieferantname2 | Ek-Preis2 | Lieferantenbestand2 | Lieferantname3 | Ek-Preis3 | Lieferantenbestand3
 
  • Gefällt mir
Reaktionen: 3jojojo

3jojojo

Sehr aktives Mitglied
20. Januar 2016
780
44
Schade dass viele Schreiben "habe ich schon selbst gelöst" ... aber die Lösung den anderen Suchenenden vorenthalten!
Mich würde die Lösung interessieren.

Und zwar in der Verkaufsansicht bei mehreren vorhandenen Lieferanten zu einem Artikel:
Lieferantname1 | Ek-Preis1 | Lieferantenbestand1 | Lieferantname2 | Ek-Preis2 | Lieferantenbestand2 | Lieferantname3 | Ek-Preis3 | Lieferantenbestand3
sorry war nicht meine Absicht. Nimm einfach den Code aus Beitrag #4 und lass am Ende das AND tliefartikel.nStandard = 1 weg. Dann wird jeder Lieferant aufgeführt.
 

marsblau

Aktives Mitglied
7. September 2019
86
8
Danke!
Sieht schon ganz gut aus, jedoch sind EK Auftrag und EK Artikel mit 0, obwohl im Artikel als Lieferanten EK eingepflegt ... nimmt er hier aus einer Lieferantenbestellung? Kann man auf den eingepflegten EK ummünzen?
 

zaxxo

Offizieller Servicepartner
SPBanner
29. November 2022
101
38
Michelstadt | Bensheim
Firma
Zaxxo UG (haftungsbeschränkt)
Für den Lieferanten EK wurde der durchschnittliche EK verwendet (der wahrscheinlich 0 ist), wenn du den EK aus der Lieferantenzuordnung haben möchtest, dann müsste das so aussehen:

SQL:
SELECT tartikel.cArtNr AS 'ArtNr',

  tArtikelBeschreibung.cName AS 'Artikelname',

    ROUND(CONVERT(FLOAT, jArtikel.nAnzahl),2) AS 'Menge',

    ROUND(CONVERT(FLOAT,jArtikel.fVKNetto),2) AS 'Netto VK (Auftrag)',

    ROUND(CONVERT(FLOAT,jArtikel.fEKNetto),2) AS 'EK Netto (Auftrag)',

    ROUND(CONVERT(FLOAT,tliefartikel.fEKNetto),2) AS 'EK Netto (Artikel)',

    ROUND(CONVERT(FLOAT,tArtikel.fVKNetto),2) AS 'Netto VK (Artikel)',

    jArtikel.cHinweis AS 'Positionshinweis',

    tartikel.cHAN AS 'Herstellerartikelnummer',

    tLieferant.cFirma AS 'Standardlieferant',

    ROUND(CONVERT(FLOAT,tliefartikel.fLagerbestand),2) AS 'Lieferantenbestand'

FROM tartikel

JOIN (

SELECT tArtikel_kArtikel, tbestellpos.nAnzahl, tBestellpos.fVKNetto,tbestellpos.fEKNetto,tBestellpos.cHinweis

FROM tbestellpos

WHERE tBestellung_kBestellung = @Key

AND tArtikel_kArtikel > 0

) AS jArtikel ON jArtikel.tArtikel_kArtikel = tartikel.kArtikel

JOIN dbo.tSpracheUsed ON nStandard = 1

JOIN dbo.tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tartikel.kArtikel

AND tArtikelBeschreibung.kSprache = tSpracheUsed.kSprache

AND tArtikelBeschreibung.kPlattform=1

LEFT JOIN dbo.tliefartikel ON tliefartikel.tArtikel_kArtikel = tArtikel.kArtikel

LEFT JOIN dbo.tlieferant ON tLieferant.kLieferant = tliefartikel.tLieferant_kLieferant
 
  • Gefällt mir
Reaktionen: marsblau

marsblau

Aktives Mitglied
7. September 2019
86
8
Super, vielen Dank.

Habe noch

dbo.tliefartikel.cLiefArtNr AS 'Lief ArtNr',

nach der 1sten Zeile eingefügt für die Lieferantenartikelnummer.