Neu Kunde: Rückstandsliste über alle offenen Auftragspositionen

designer

Offizieller Servicepartner
SPBanner
20. Juli 2009
256
17
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
490
113
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
17
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
8
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
8
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
8
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
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Eigene Felder (Kunde) in csv-Datei per Ausgabe (Auftrag oder Lieferschein) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Stickprogramm - Kosten die Kunde nur einmalig bezahlen muss Allgemeine Fragen zu JTL-Shop 1
Neu JTL-Search - funktioniert nach Anmeldung als Kunde schlechter als ohne Anmeldung User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wie kann ich die vergebene Coupons sehen. Welche Kunde welchen Copoun Allgemeine Fragen zu JTL-Shop 0
Neu Rabatt für Kunde auf bestimmte Kategorien Arbeitsabläufe in JTL-Wawi 0
Neu Kunde bekommt Zahlungsart angezeigt die wir nicht anbieten User helfen Usern 5
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Kunde zusammenführen - Aufträge behalten alte Kundennummer JTL-Wawi - Fehler und Bugs 1
Neu Wie bekomme ich Statistik "Kunde/Artikelnummer/Menge/Netto-VK" auf Basis Rechnungspositionen? Arbeitsabläufe in JTL-Wawi 0
Neu Exportformate neu über alles Allgemeine Fragen zu JTL-Shop 0
Neu Rechner über Nacht runter fahren? User helfen Usern - Fragen zu JTL-Wawi 11
JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Vouchers 1
Neu JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Shop 0
Neu Freitextfeld über Variation - Zeichenbeschränkung für Gravur Allgemeine Fragen zu JTL-Shop 8
In Bearbeitung Artikel über csv-Datei bearbeiten und importieren Allgemeine Fragen zu JTL-POS 3
Neu Verordnung über die allgemeine Produktsicherheit (GPSR) JTL-Wawi - Ideen, Lob und Kritik 0
Neu Kundenpreise in Artikelübersicht (über Umwege)? Arbeitsabläufe in JTL-Wawi 0
Neu Verbindungsproblem Wawi (1.8.12.0) zum JTL-Shop (5.2.4) über localhost User helfen Usern - Fragen zu JTL-Wawi 0
Auftragsimport über eBay - Bezeichnung der Versandart auf der Rechnung leer JTL-Wawi 1.8 1
Wie kann ich eine Benachrichtigung bei einem Wareneingang auslösen mit einer Mail über die Artikel die eingebucht wurden JTL-Wawi 1.8 2
Artikel wurden über Weclapp über FFN-Connect an JTL FFN übermittelt jedoch leider nicht an Wawi & WMS JTL-Wawi 1.8 0
Gutschrift über einen Set-Artikel JTL-Wawi 1.7 0
Teilrechnung Erstellen über/nach Packtisch+ JTL-Wawi 1.8 1
Neu SCSS-Datei bearbeiten über FTP Allgemeine Fragen zu JTL-Shop 6
Neu Email Versand über OAuth JTL-Wawi - Ideen, Lob und Kritik 2
Neu Informationspflicht über Sicherstellung der Echtheit von Kundenbewertungen Business Jungle 5
Neu SQL Abfrage über ODBC für Bewegunghistorie (WMS) Eigene Übersichten in der JTL-Wawi 4
Neu PayPal - Benachrichtungen über Zahlung -> EMail. Wo kann man den Betreff bearbeiten? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Mails über Microsoft 365 User helfen Usern - Fragen zu JTL-Wawi 17
Neu Verkaufte Stückzahl pro Artikel über Ameise ausgeben JTL Ameise - Eigene Exporte 1
Statistik über ALLE Kunden mit Umsatz JTL-Wawi 1.6 1
Neu Anbindung kaufland und Otto über JTL 1.7.15.4 noch möglich? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikelname für WMS über Ameise importieren JTL-Ameise - Fehler und Bugs 6
Positionen alle auf einmal z.B über csv in einen bestehenden Auftrag einfügen JTL-Wawi 1.8 2
Neu Exportvorlage Hermes wir über Packtisch nicht mehr ausgegeben JTL-ShippingLabels - Fehler und Bugs 0
Neu Überverkäufe in Amazon, wenn Artikel über "Dranhängen"/ Jetzt Verkaufen in Amazon/ Seller Central erstellt wird. Amazon-Anbindung - Fehler und Bugs 3
Neu Ameise Import manuell ausgeführt funktioniert, der gleiche Import über Batch Planung gestartet hat Fehler JTL-Ameise - Fehler und Bugs 2

Ähnliche Themen