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

John

Sehr aktives Mitglied
3. März 2012
3.286
737
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
724
287
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
724
287
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.286
737
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.286
737
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
724
287
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 Was passiert wenn ich Amazon Aufträge, Lieferscheine und Rechnungen per SQL aus der WAWI-Datenbank lösche? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Installation MS SQL 2022 Express: Fehler beim Warten auf das Wiederherstellungshandle des Datenbankmoduls Installation von JTL-Wawi 9
SQL Abfrage bei Workflow Datei Schreibn JTL-Wawi 1.9 1
Neu SQL-Abfrage von im Onlineshop aktiven Artikeln JTL Ameise - Eigene Exporte 2
Neu Biete: Windows Server optimiert für JTL und MS SQL Standard Lizenz (8 Monate alt, 42% unter Neupreis) Dienstleistung, Jobs und Ähnliches 1
Gespeicherte Filter (Lagerbewertung) nach SQL Umzug nicht mehr abrufbar JTL-Wawi 1.9 0
Neu Umzug von SQL 2016 Express auf SQL 2019 Standard mit Wawi 1.8.12.2 Installation von JTL-Wawi 10
Neu Update für Shopvote 1.1.0 führt zu SQL-Fehler Plugins für JTL-Shop 5
Neu Backup einrichten, habe die SQL Anmeldedaten verlegt Installation von JTL-Wawi 1
Sql Abfrage VK Preise pro Kundengruppe für Grafana JTL-Wawi 1.8 9
Neu SQL Query zum Bilder löschen Arbeitsabläufe in JTL-Wawi 3
Neu List & Label - Eigene SQL-Abfrage als Grundlage für Tabelle im Berichtscontainer? User helfen Usern - Fragen zu JTL-Wawi 10
Neu SQL Server kein Mandant auswählbar und Dienst lässt sich nicht starten Installation von JTL-Wawi 2
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Innerhalb einer Variable -SQL Abfrage- das Wort "fett" schreiben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7
Neu Bei Änderung eines via LS-Pos erstellten Auftrages springt Zahlungsart auf bar User helfen Usern - Fragen zu JTL-Wawi 0
Löschen eines zweiten Onlineshops JTL-Wawi 1.9 3
Neu Bestände eines Artikels, die mindestens ein MHD von x Tagen aufweisen Eigene Übersichten in der JTL-Wawi 5
Neu Anschaffung eines (Versand-)Etiketten Drucker User helfen Usern 11
Neu Preis eines Artikels ab einem bestimmten Warenkorbwertes günstiger. User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow Hilfe gesucht, Ersetzten eines Textes User helfen Usern - Fragen zu JTL-Wawi 4
Neu Wie kann ich die Verfügbarkeiten eines Artikels bei Amazon steuern? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Inhalt eines Containers mehrfach auf verschiedenen Unterseiten darstellen Allgemeine Fragen zu JTL-Shop 4

Ähnliche Themen