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

John

Sehr aktives Mitglied
3. März 2012
3.158
703
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
725
285
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
725
285
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.158
703
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.158
703
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
725
285
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 Update für Shopvote 1.1.0 führt zu SQL-Fehler Plugins für JTL-Shop 4
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 Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Microsoft SQL unter MS365 Installation von JTL-Wawi 2
Neu SQL Abfrage, 3. Mahnstufe User helfen Usern - Fragen zu JTL-Wawi 1
Neu Variable oder SQL zum Feld "Gewinn netto" (im Auftrag) Eigene Übersichten in der JTL-Wawi 9
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
Neu MS SQL Server auf Windows vs Linux Starten mit JTL: Projektabwicklung & Migration 9
Beantwortet Hilfe bei SQL Abfrage erbeten User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu Zeilenabstand zwischen Positionen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 11
Neu Lieferdatum/Lieferzeit in Angebot/AB/Lieferschein/Rechnung für einzelne Positionen darstellen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
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
Austausch eines bezahlten Artikels gegen einen preiswerteren in bereits bezahltem auftrag JTL-Wawi 1.7 6
In Diskussion Nachricht bei Einbuchung eines erwarteten Artikels JTL-Workflows - Ideen, Lob und Kritik 2
Chargennummer eines Artikels auf der Rechnung mit ausdrucken JTL-Wawi 1.9 3
Neu Deaktivierung eines Artikels JTL-Wawi - Fehler und Bugs 0

Ähnliche Themen