Neu Kunde: Rückstandsliste über alle offenen Auftragspositionen

designer

Offizieller Servicepartner
SPBanner
20. Juli 2009
261
19
In der Kundenübersicht ist eine Liste gewünscht über alle offenen Positionen eines Kunden mit folgenden Spalten:
Bestellnummer; Bestell-Datum; Anzahl-Ausstehend; ArtikelNummer; Artikelname
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: NetWerk

Happy

Moderator
Mitarbeiter
29. Juli 2011
496
120
Hückelhoven
Hallo @designer
versuche es mal mit folgendem SQL.
SQL:
select
tBestellung.cBestellNr as Bestellnummer
, CONVERT(varchar(MAX)
,dErstellt,104) AS "Bestell-Datum"
, Format(fAnzahl, 'F0', 'de-de') as "Anzahl-Ausstehend"
, cArtNr AS ArtikelNummer
, cString As Artikelname
from Verkauf.lvAuftragsposition
join dbo.tBestellung on tBestellung.kBestellung = Verkauf.lvAuftragsposition.kBestellung
where tKunde_kKunde = @key AND fAnzahlAuszuliefern > 0
 

NetWerk

Offizieller Servicepartner
SPBanner
21. Juni 2019
23
3
Das ist großartig! Wie könnte ich nun noch ein kundenindividuelles Feld (nämlich: erwarteter Liefertermin auf dem Artike) ergänzen???
 

NetWerk

Offizieller Servicepartner
SPBanner
21. Juni 2019
23
3
Hallole,
"Eigenes Feld" im Artikel. Feld heißt "Liefertermin".
Merci! Katharina
 

David_M

Aktives Mitglied
4. Januar 2011
99
18
Hallo zusammen,

vorab, wir arbeiten schon mit der Wawi 1.6, in der sich hier und da etwas in der Datenbankstruktur geändert hat.
Da wir die Übersicht allerdings auch ganz hilfreich finden hier einmal der Code. Einfach in der Kundenübersicht als "eigene Übersicht" einbauen:

SQL:
select
Verkauf.tAuftrag.cAuftragsNr as Auftragsnummer
,CONVERT(varchar(MAX)
,dErstellt,104) AS "Bestell-Datum"
,Format(fAnzahl, 'F0', 'de-de') as "Anzahl-Ausstehend"
,cArtNr AS Artikelnummer
from Verkauf.lvAuftragsposition
join Verkauf.tAuftrag on Verkauf.tAuftrag.kAuftrag = Verkauf.lvAuftragsposition.kAuftrag
join Verkauf.tAuftragPositionEckdaten on Verkauf.tAuftragPositionEckdaten.kAuftragPosition =  Verkauf.lvAuftragsposition.kAuftragPosition
where Verkauf.tAuftrag.kKunde = @Key AND Verkauf.tAuftragPositionEckdaten.fAnzahlOffen > 0

Grüße
David
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
303
9
Wir wollten ebenfalls eine Rückstandsliste erstellen, benötigten aber neben einigen Artikelinfos auch die externe Bestellnummer, welche wir als eigenes Feld in den Aufträgen haben. Hier die erweiterte SQL-Abfrage, ohne Gewähr:


SQL:
SELECT DISTINCT
Verkauf.tAuftrag.cAuftragsNr AS Auftragsnummer
,CASE WHEN Verkauf.tAuftragAttribut.kAttribut = '202' THEN Verkauf.tAuftragAttributSprache.cWertVarchar ELSE null END AS Bestellnummer
,CONVERT(varchar(MAX),dErstellt,104) AS "Bestell-Datum"
,Format(fAnzahl, 'F0', 'de-de') AS "Anzahl-Ausstehend"
,Verkauf.tAuftragPosition.cEinheit AS Einheit
,Verkauf.tAuftragPosition.cArtNr AS Artikelnummer
,Verkauf.tAuftragPosition.cName AS Artikelbezeichnung
,dbo.tArtikel.cBarcode AS GTIN
,dbo.tArtikel.cHAN AS MPN
FROM Verkauf.tAuftragPosition
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = Verkauf.tAuftragPosition.kAuftrag
JOIN Verkauf.tAuftragPositionEckdaten ON Verkauf.tAuftragPositionEckdaten.kAuftragPosition =  Verkauf.tAuftragPosition.kAuftragPosition
JOIN dbo.tArtikel ON dbo.tArtikel.kArtikel = Verkauf.tAuftragPosition.kArtikel
JOIN Verkauf.tAuftragAttribut ON Verkauf.tAuftragAttribut.kAuftrag = Verkauf.tAuftragPosition.kAuftrag
JOIN Verkauf.tAuftragAttributSprache ON Verkauf.tAuftragAttributSprache.kAuftragAttribut = Verkauf.tAuftragAttribut.kAuftragAttribut
WHERE Verkauf.tAuftrag.kKunde = @Key AND Verkauf.tAuftragPositionEckdaten.fAnzahlOffen > 0

Um mir ein weiteres JOIN und eine sprachenabhängige Auswahl zu ersparen, suchen wir das eigene Feld "Bestellnummer" anhand dessen interner ID, welche in diesem Fall die 202 ist. Die passende ID für das eigene Feld der Wahl findet sich in der Tabelle dbo.tAttributSprache und müsste in Zeile 3 entsprechend angepasst werden.
Mit dem SELECT DISTINCT verhindern wir, dass in der Ausgabe Artikel doppelt angezeigt werden, wenn es mehrere eigene Felder gibt. Ursprünglich sollte das bereits beim JOIN abgefangen werden, so dass nur die Werte für dieses Attribut gezogen werden, aber damit hatte ich irgendwie kein Glück.
 

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
303
9
Leider kann ich meinen obigen Beitrag nicht mehr ändern, der Code erzeugt immer noch Dubletten in der Abfrage. Bei Aufträgen bei denen das eigene Feld "Bestellnummer" gefüllt ist, werden die Positionen jeweils einmal mit und einmal ohne die Bestellnummer ausgegeben. Ich bin leider noch nicht auf die richtige Lösung gekommen. Ursache hängt mit dem vorletzten JOIN zusammen, aber mir erschließt sich noch nicht warum.

Das DISTINCT hilft in diesem Fall nicht weiter, da die beiden Zeilen sich ja genau in diesem Feld unterscheiden.

Hat jemand eine Idee?

Folgender Code liefert mir die Rückstandsliste ohne das eigene Feld einwandfrei:

SQL:
SELECT
Verkauf.tAuftrag.cAuftragsNr AS Auftragsnummer
,CONVERT(varchar(MAX),dErstellt,104) AS "Bestell-Datum"
,Format(fAnzahl, 'F0', 'de-de') AS "Anzahl-Ausstehend"
,Verkauf.tAuftragPosition.cEinheit AS Einheit
,Verkauf.tAuftragPosition.cArtNr AS Artikelnummer
,Verkauf.tAuftragPosition.cName AS Artikelbezeichnung
,dbo.tArtikel.cBarcode AS GTIN
,dbo.tArtikel.cHAN AS MPN
FROM Verkauf.tAuftragPosition
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = Verkauf.tAuftragPosition.kAuftrag
JOIN Verkauf.tAuftragPositionEckdaten ON Verkauf.tAuftragPositionEckdaten.kAuftragPosition =  Verkauf.tAuftragPosition.kAuftragPosition
JOIN dbo.tArtikel ON dbo.tArtikel.kArtikel = Verkauf.tAuftragPosition.kArtikel
WHERE Verkauf.tAuftrag.kKunde = @Key AND Verkauf.tAuftragPositionEckdaten.fAnzahlOffen > 0

Und dieser Code liefert mir eine Liste mit Auftragsnummer und dem eigenen Feld "Bestellnummer" (mit ID 202):

SQL:
SELECT DISTINCT
Verkauf.tAuftrag.cAuftragsNr AS Auftragsnummer
,Verkauf.tAuftragAttributSprache.cWertVarchar  AS Bestellnummer
FROM Verkauf.tAuftragPosition
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = Verkauf.tAuftragPosition.kAuftrag
JOIN Verkauf.tAuftragPositionEckdaten ON Verkauf.tAuftragPositionEckdaten.kAuftragPosition =  Verkauf.tAuftragPosition.kAuftragPosition
JOIN dbo.tArtikel ON dbo.tArtikel.kArtikel = Verkauf.tAuftragPosition.kArtikel
INNER JOIN Verkauf.tAuftragAttribut ON Verkauf.tAuftragAttribut.kAuftrag = Verkauf.tAuftragPosition.kAuftrag AND Verkauf.tAuftragAttribut.kAttribut = '202'
JOIN Verkauf.tAuftragAttributSprache ON Verkauf.tAuftragAttributSprache.kAuftragAttribut = Verkauf.tAuftragAttribut.kAuftragAttribut
WHERE Verkauf.tAuftrag.kKunde = @Key AND Verkauf.tAuftragPositionEckdaten.fAnzahlOffen > 0

Wie schreibt man das sinnvollerweise in einer Abfrage zusammen?
 
Zuletzt bearbeitet:

rote-locke

Gut bekanntes Mitglied
9. Dezember 2011
303
9
Ich denke, ich habe es jetzt hinbekommen. Wer möchte, kann/darf gerne testen:


SQL:
SELECT
Verkauf.tAuftrag.cAuftragsNr AS Auftragsnummer
,tBestellnummer.Bestellnummer AS Bestellnummer
,Verkauf.tAuftragPosition.cArtNr AS Artikelnummer
,Verkauf.tAuftragPosition.cName AS Artikelbezeichnung
,dbo.tArtikel.cBarcode AS GTIN
,dbo.tArtikel.cHAN AS MPN
,Format(fAnzahl, 'F0', 'de-de') AS "Anzahl-Ausstehend"
,Verkauf.tAuftragPosition.cEinheit AS Einheit
,FORMAT(Verkauf.tAuftragPosition.fVkNetto, 'N2') as "Netto Einzelpreis"
,FORMAT(Verkauf.tAuftragPosition.fRabatt, 'N2') as "Rabatt (%)"
,FORMAT(Verkauf.tAuftragPosition.fVkNetto*(100-Verkauf.tAuftragPosition.fRabatt)/100, 'N2') as "Netto Einzelpreis inkl. Rabatt"
,FORMAT(Verkauf.tAuftragPosition.fMwSt, 'N2') as "MwSt (%)"
,FORMAT(fAnzahl*(Verkauf.tAuftragPosition.fVkNetto*(100-Verkauf.tAuftragPosition.fRabatt)/100), 'N2') as "Summe Netto Preis inkl. Rabatt"
FROM Verkauf.tAuftragPosition
JOIN Verkauf.tAuftrag ON Verkauf.tAuftrag.kAuftrag = Verkauf.tAuftragPosition.kAuftrag
JOIN Verkauf.tAuftragPositionEckdaten ON Verkauf.tAuftragPositionEckdaten.kAuftragPosition =  Verkauf.tAuftragPosition.kAuftragPosition
JOIN dbo.tArtikel ON dbo.tArtikel.kArtikel = Verkauf.tAuftragPosition.kArtikel
LEFT JOIN (
SELECT Verkauf.tAuftragAttribut.kAuftrag AS ID, Verkauf.tAuftragAttributSprache.cWertVarchar AS Bestellnummer
                 FROM Verkauf.tAuftragAttribut
                 JOIN Verkauf.tAuftragAttributSprache ON Verkauf.tAuftragAttributSprache.kAuftragAttribut = Verkauf.tAuftragAttribut.kAuftragAttribut AND Verkauf.tAuftragAttribut.kAttribut = '202'
) AS tBestellnummer ON tBestellnummer.ID = Verkauf.tAuftragPosition.kAuftrag
WHERE Verkauf.tAuftrag.kKunde = @Key AND Verkauf.tAuftragPositionEckdaten.fAnzahlOffen > 0
 
  • Gefällt mir
Reaktionen: ngi
Ähnliche Themen
Titel Forum Antworten Datum
Neu abgebrochene Auftragszahlung - Kunde bleibt ausgewählt Fragen rund um LS-POS 0
Neu Amazon Business Kunde Österreich mit USt in Wawi Amazon-Anbindung - Fehler und Bugs 1
Neu Freitexteingabe durch Kunde bei bestimmten Variationen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Eigene Übersicht Kunde QR Code Kundennummer Eigene Übersichten in der JTL-Wawi 4
In Diskussion Kopieren oder Auslösen von Workflows in anderen Bereichen (Von Rechnung nach Kunde) JTL-Workflows - Ideen, Lob und Kritik 2
Neu Kunde zahlt bar bei Anlieferung, wie löse ich das? Arbeitsabläufe in JTL-Wawi 15
Neu Rückstandsliste Lieferanten Schnittstellen Import / Export 0
Neu JTL Shop 5.3.X - Fehlerhafte Artikellinks bei Export über Exporte-Manager JTL-Shop - Fehler und Bugs 1
Neu Drittshop Anbindung über JTL Connector Onlineshop-Anbindung 1
Neu Keine Bestellung möglich über Nova 5.4 auf 4K Laptop JTL-Shop - Fehler und Bugs 16
Neu Fehler 500 bei Versandmeldung an Amazon über JTL-eazyAuction Amazon-Anbindung - Fehler und Bugs 1
Neu JTL über LTE quälend langsam Installation von JTL-Wawi 13
Telefonnummer über Klarna JTL-Wawi 1.9 0
Neu Email-Versand über MS365 geht nicht Installation von JTL-Wawi 1
In Diskussion Hinweis im WMS Ausgeben wenn ein bestimmter Artikel verpackt wird über WMS JTL-Workflows - Ideen, Lob und Kritik 5
Neu Versand über Kundenaccount Allgemeine Fragen zu JTL-Shop 5
In Diskussion Keine Auslieferung nach Zahlungsartänderung über Workflow JTL-Workflows - Fehler und Bugs 4
Neu WMS über Remote druckt langsam Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 8
Neu Artikel lässt sich im Shop 5.2.5 über die Wawi nicht löschen JTL-Shop - Fehler und Bugs 2
Neu Toplevel-Banner hinzufügen und/oder über Wawi Steuern Allgemeine Fragen zu JTL-Shop 0
Neu Einzelne Artikel über stückliste im Packtisch scannen User helfen Usern - Fragen zu JTL-Wawi 3
Maximal unzuverlaässiges ermitteln von fba Bedarf über die Umlagerungen in jtl. JTL-Wawi 1.9 0
Gelöst Artikel an der Kasse beim scannen nur über Artikelnummer, nicht über GTIN identifizieren (Gebrauchtware, GTIN mehrfach in der Wawi) Allgemeine Fragen zu JTL-POS 1
Neu Spam über Frage zum Artikel User helfen Usern - Fragen zu JTL-Wawi 10
Neu Wie kann ich über eigene Felder eine Mehrfachauswahl erstellen? User helfen Usern - Fragen zu JTL-Wawi 4
Neu jtl.evo.js über Child Template anpassen. Geht das? Technische Fragen zu Plugins und Templates 6
Amazon Angebote über JTL schließen JTL-Wawi 1.6 0
Neu Permanenten Excel-Log über Workflow führen User helfen Usern - Fragen zu JTL-Wawi 2
WaWi Bestellung über Amazon erfüllen lassen - FBA Bestände werden nicht angezeigt Amazon-Anbindung - Ideen, Lob und Kritik 2
Artikelverkauf über JTL-Shop mit Bestand 0 in der JTL WaWi JTL-Wawi 1.9 13
Neu IDeal Zahlung über Paypal und Bestellung nicht erhalten. Geld aber abgebucht.... Allgemeine Fragen zu JTL-Shop 2
Wawi unsanft täglich beenden über CMD Taskkill JTL-Wawi 1.8 1
Neu Amazon Bestellung über JTL stornieren Amazon-Anbindung - Fehler und Bugs 2

Ähnliche Themen