Neu SQL: Positionen eines Auftrags sind auf welchem Lieferschein gelandet?

John

Sehr aktives Mitglied
3. März 2012
4.062
1.022
Berlin
Hi,

ich suche die Verbindung zwischen Artikeln eines Auftrages und den Lieferscheinen.

[Verkauf].[tAuftrag] hat die Positionen in [Verkauf].[tAuftragPosition]
und
[dbo].[tLieferschein] hat die Positionen in [dbo].[tLieferscheinPos]

aber wie ist die Verbindung zwischen den beiden Bereichen realisiert?
Ich möchte abfragen, über welchen Lieferschein bzw. aus welchem Lager die Positionen eines Auftrags raus gegangen sind.

John
 

frankell

Sehr aktives Mitglied
9. September 2019
2.647
825
Flensburg
[Verkauf].[tAuftrag] und [dbo].[tLieferschein] teilen die Auftragsrelation, in tAuftrag kAuftrag und in tLieferschein kBestellung genannt. kBestellung ist der alte Begriff, der vor allem in älteren Tabellen genutzt wird, kAuftrag der neuere.
 

frankell

Sehr aktives Mitglied
9. September 2019
2.647
825
Flensburg
Ah, Du meinst Deckungsgleichheit der (Reihenfolge der) Positionen? Ich behaupte mal ganz keck, dass diese gar nicht immer gegeben sein kann, allein schon bei Teillieferungen oder ggf. auch hinsichtlich Stücklisten und der Versandposition, Freipositionen usw.

Da bliebe nur der Vergleich über kArtikel.
 

John

Sehr aktives Mitglied
3. März 2012
4.062
1.022
Berlin
@frankell erstmal vielen Dank für's mit Reinschauen.
Es sind ja außer Dir und @mh1 nicht mehr viele hier, die etwas tiefer als die GUI einsteigen ;)

Ich habe zwei Standardläger, die meine Bestellungen erfüllen und möchte auswerten, welches Lager welchen Umsatz erzeugt hat und zwar bei nur bei den Aufträgen eines bestimmten Kunden.
Das ganze hat Abrechnungsgründe.

Dazu habe ich mir aus dem Wawi Bereich Versand -> Lieferscheine die Lv für die Positionen je Lieferschein besorgt.
[Versand].[lvLieferscheinWarenlagerausgang] liefert mit cWarenlagerName das Quelllager.

Ich denke, ich habe es dann mit
Code:
SELECT
Verkauf.tAuftrag.*,
tLieferschein.*,
tLieferscheinPos.*,
Verkauf.tAuftragPosition.*,
Versand.lvLieferscheinWarenlagerausgang.*
FROM tLieferschein
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = tLieferschein.kBestellung
JOIN Versand.lvLieferscheinWarenlagerausgang ON Versand.lvLieferscheinWarenlagerausgang.kLieferschein = tLieferschein.kLieferschein
JOIN tLieferscheinPos ON tLieferscheinPos.kLieferscheinPos = Versand.lvLieferscheinWarenlagerausgang.kLieferscheinPos
JOIN Verkauf.tAuftragPosition ON Verkauf.tAuftragPosition.kAuftragPosition = tLieferscheinPos.kBestellPos
WHERE Verkauf.tAuftrag.nType = 1
AND  Verkauf.tAuftrag.nStorno = 0
AND Verkauf.tAuftrag.kKunde = 12345

Das kAuftragPosition und kBestellPos die Relation bilden, ist in der Tat namentlich verwirrend.
 

John

Sehr aktives Mitglied
3. März 2012
4.062
1.022
Berlin
Etas aufgehübscht, falls es mal jemand braucht...

Code:
SELECT
Verkauf.tAuftrag.cAuftragsNr,
Verkauf.tAuftrag.cExterneAuftragsnummer,
FORMAT(Verkauf.tAuftrag.dErstellt, 'd', 'de-de') AS 'Auftrag erstellt am',
Verkauf.tAuftrag.cKundenNr,
tAdresse.cFirma AS Firma,
Verkauf.tAuftrag.cWaehrung,
tLieferschein.cLieferscheinNr,
Versand.lvLieferscheinWarenlagerausgang.cWarenlagerName,
Verkauf.tAuftragPosition.cArtNr,
Verkauf.tAuftragPosition.cNameStandard,
FORMAT(Versand.lvLieferscheinWarenlagerausgang.fAnzahl, 'G', 'de-de') AS Menge,
FORMAT(Verkauf.tAuftragPosition.fVkNetto, 'G', 'de-de') AS EinzelpreisNetto,
FORMAT(Verkauf.tAuftragPosition.fMwSt, 'G', 'de-de') AS MwSt,
FORMAT(Verkauf.tAuftragPosition.fRabatt, 'G', 'de-de') AS RabattProzent,
FORMAT(Versand.lvLieferscheinWarenlagerausgang.fAnzahl * (Verkauf.tAuftragPosition.fVkNetto - (Verkauf.tAuftragPosition.fVkNetto / 100 * Verkauf.tAuftragPosition.fRabatt)), 'G', 'de-de')  AS GesamtNetto
FROM tLieferschein
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = tLieferschein.kBestellung
JOIN Versand.lvLieferscheinWarenlagerausgang ON Versand.lvLieferscheinWarenlagerausgang.kLieferschein = tLieferschein.kLieferschein
JOIN tLieferscheinPos ON tLieferscheinPos.kLieferscheinPos = Versand.lvLieferscheinWarenlagerausgang.kLieferscheinPos
JOIN Verkauf.tAuftragPosition ON Verkauf.tAuftragPosition.kAuftragPosition = tLieferscheinPos.kBestellPos
JOIN tAdresse ON tAdresse.kKunde = Verkauf.tAuftrag.kKunde
WHERE Verkauf.tAuftrag.nType = 1
AND  Verkauf.tAuftrag.nStorno = 0
AND tAdresse.nStandard = 1
AND Verkauf.tAuftrag.kKunde = 1234
ORDER BY Verkauf.tAuftrag.kAuftrag, tLieferschein.kLieferschein, tLieferscheinPos.kLieferscheinPos ASC
 
  • Gefällt mir
Reaktionen: frankell

frankell

Sehr aktives Mitglied
9. September 2019
2.647
825
Flensburg
Etas aufgehübscht, falls es mal jemand braucht...

Code:
SELECT
Verkauf.tAuftrag.cAuftragsNr,
Verkauf.tAuftrag.cExterneAuftragsnummer,
FORMAT(Verkauf.tAuftrag.dErstellt, 'd', 'de-de') AS 'Auftrag erstellt am',
Verkauf.tAuftrag.cKundenNr,
tAdresse.cFirma AS Firma,
Verkauf.tAuftrag.cWaehrung,
tLieferschein.cLieferscheinNr,
Versand.lvLieferscheinWarenlagerausgang.cWarenlagerName,
Verkauf.tAuftragPosition.cArtNr,
Verkauf.tAuftragPosition.cNameStandard,
FORMAT(Versand.lvLieferscheinWarenlagerausgang.fAnzahl, 'G', 'de-de') AS Menge,
FORMAT(Verkauf.tAuftragPosition.fVkNetto, 'G', 'de-de') AS EinzelpreisNetto,
FORMAT(Verkauf.tAuftragPosition.fMwSt, 'G', 'de-de') AS MwSt,
FORMAT(Verkauf.tAuftragPosition.fRabatt, 'G', 'de-de') AS RabattProzent,
FORMAT(Versand.lvLieferscheinWarenlagerausgang.fAnzahl * (Verkauf.tAuftragPosition.fVkNetto - (Verkauf.tAuftragPosition.fVkNetto / 100 * Verkauf.tAuftragPosition.fRabatt)), 'G', 'de-de')  AS GesamtNetto
FROM tLieferschein
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = tLieferschein.kBestellung
JOIN Versand.lvLieferscheinWarenlagerausgang ON Versand.lvLieferscheinWarenlagerausgang.kLieferschein = tLieferschein.kLieferschein
JOIN tLieferscheinPos ON tLieferscheinPos.kLieferscheinPos = Versand.lvLieferscheinWarenlagerausgang.kLieferscheinPos
JOIN Verkauf.tAuftragPosition ON Verkauf.tAuftragPosition.kAuftragPosition = tLieferscheinPos.kBestellPos
JOIN tAdresse ON tAdresse.kKunde = Verkauf.tAuftrag.kKunde
WHERE Verkauf.tAuftrag.nType = 1
AND  Verkauf.tAuftrag.nStorno = 0
AND tAdresse.nStandard = 1
AND Verkauf.tAuftrag.kKunde = 1234
ORDER BY Verkauf.tAuftrag.kAuftrag, tLieferschein.kLieferschein, tLieferscheinPos.kLieferscheinPos ASC
Cool, vielen Dank für's Teilen! :thumbsup:
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu MS Server und MS SQL Installation von JTL-Wawi 2
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 12
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 3
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 3
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 2
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Neu Konfigurationskomponenten auf Bons in separaten Positionen ausgeben JTL-POS - Fehler und Bugs 1
Neu Positionen eines Auftrags auf mehrere Picklistenvorlagen aufteilen? User helfen Usern - Fragen zu JTL-Wawi 0
Eingangsrechnungen mit Einstellung "Nur gelieferte Positionen übernehmen" - Versandkosten werden nicht mit übernommen JTL-Wawi 1.11 4
Kommissionierung: Aufteilung eines Auftrags auf mehrere Boxen JTL-Wawi 1.9 2
Neu Anbindung eines zweiten Amazon Accounts Amazon-Anbindung - Fehler und Bugs 1

Ähnliche Themen