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

John

Sehr aktives Mitglied
3. März 2012
3.965
976
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.537
770
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.537
770
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
3.965
976
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
3.965
976
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.537
770
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
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 Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu SQL Worker.tStatus - Bedeutung von nStatus? JTL Ameise - Eigene Exporte 2
Neu Suche Servicepartner für SQL-Abfrage Dienstleistung, Jobs und Ähnliches 2
Neu askJan | Neuer KI-Assistent für JTL-Wawi - schnelle, effiziente und transparente KI-Datenanalyse - ohne SQL! Dienstleistung, Jobs und Ähnliches 34
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Neu Wie lässt sich der Lieferstatus von Aufträgen per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 21
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 12
Neu JTL_DirectQuery - SQL Abfrage Anzahl der Pakete auf Versandliste (DPD) User helfen Usern - Fragen zu JTL-Wawi 4
Artikel Z besteht aus den Positionen A, B und C mit unterschiedlichen Steuersätzen. Wie im Angebot, Auftrag, Rechnung richtig dargestellen ? JTL-Wawi 1.11 4
Neu Ein Auftrag, zwei Positionen, zwei Lieferanschriften User helfen Usern - Fragen zu JTL-Wawi 2
Neu Couponfeld nach Eingabe eines coupons automatisch ausblenden lassen Allgemeine Fragen zu JTL-Shop 4
Neu JTL-Wawi 1.11.4 – Vaterartikel lässt sich nach Entfernen eines Kindartikels nicht mehr speichern JTL-Wawi - Fehler und Bugs 3
Neu Probleme mit dem erstellen eines Profils in der Datenbankverwaltung JTL-Wawi - Fehler und Bugs 1

Ähnliche Themen