Neu Verkaufsmengen | nur berechnete Aufträge beachten

SLINGSHOT

Aktives Mitglied
3. November 2020
40
4
Moin,

ich finde leider keine Antwort in dem Forum deshalb der neue Thread.

Aktuell nutze ich diese Abfrage. Sie beinhaltet Produkte auf Bestellungen aber ignoriert ob diese ausgeliefert oder berechnet wurden. Ich würde die abfrage gerne ändern auf ausgelieferte oder berechnete Aufträge ändern da dies für mich wichtiger ist (Vorbestellungen möchte ich also nicht hier drin haben). Es sollen also die Verkäufe (berechnete) Menge anzeigt werden.

1611139325436.png

Vielleich kann mir hier jemand weiterhelfen?

Danke :)
 

SLINGSHOT

Aktives Mitglied
3. November 2020
40
4
Bitte stelle doch mal den SQL-Code "dieser Abfrage" mit rein.

Hier ist der SQL Code:

SELECT tPlattform.cName AS 'Plattform',
ISNULL(jAktTag.absatz, 0) AS 'Heute',
ISNULL(jGestern .absatz, 0) AS 'Gestern',
ISNULL(jAktMonat.absatz, 0) AS 'Akt. Monat',
ISNULL(jVorMonat.absatz, 0) AS 'Vormonat',
ISNULL(jLetzte30Tage.absatz, 0) AS 'Letzte 30 Tage',
ISNULL(jLetzte3Monate.absatz, 0) AS 'Letzte 3 Monate',
ISNULL(jAktJahr.absatz, 0) AS 'Akt. Jahr',
ISNULL(jLetzte365Tage.absatz, 0) AS 'Letzte 365 Tage',
ISNULL(jVorjahr.absatz, 0) AS 'Vorjahr',
ISNULL(jGesamt.absatz, 0) AS 'Gesamt'
FROM tPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
AND DAY(tBestellung.dErstellt) = DAY(getdate())
GROUP BY nPlatform
) as jAktTag on jAktTag.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))
GROUP BY nPlatform
) as jGestern on jGestern.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
GROUP BY nPlatform
) as jAktMonat on jAktMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))
GROUP BY nPlatform
) as jVorMonat on jVorMonat.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())
GROUP BY nPlatform
) as jLetzte30Tage on jLetzte30Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())
GROUP BY nPlatform
) as jLetzte3Monate on jLetzte3Monate.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
GROUP BY nPlatform
) as jAktJahr on jAktJahr.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())
GROUP BY nPlatform
) as jLetzte365Tage on jLetzte365Tage.nPlatform = tPlattform.nPlattform
LEFT JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))
GROUP BY nPlatform
) as jVorjahr on jVorjahr.nPlatform = tPlattform.nPlattform
JOIN (
SELECT nPlatform,
ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
GROUP BY nPlatform
) as jGesamt on jGesamt.nPlatform = tPlattform.nPlattform
WHERE tPlattform.cName NOT IN ('XML-Import', 'Amazon.com.mx') -- XML-Import und Amazon Mexiko wollen wir exemplarisch ausschliessen
UNION
SELECT 'Alle Plattformen' AS 'Plattform',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())
AND DAY(tBestellung.dErstellt) = DAY(getdate())) as 'Heute',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(DAY, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(DAY, -1, getdate()))
AND DAY(tBestellung.dErstellt) = DAY(DATEADD(DAY, -1, getdate()))) as 'Gestern',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())
AND MONTH(tBestellung.dErstellt) = MONTH(getdate())) as 'Akt. Monat',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(MONTH, -1, getdate()))
AND MONTH(tBestellung.dErstellt) = MONTH(DATEADD(MONTH, -1, getdate()))) as 'Vormonat',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tbestellung.cType = 'B'
AND tBestellung.dErstellt > DATEADD(DAY, -30, getdate())) as 'Letzte 30 Tage',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tBestellung.dErstellt > DATEADD(MONTH, -3, getdate())) as 'Letzte 3 Monate',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(getdate())) as 'Akt. Jahr',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND tBestellung.dErstellt > DATEADD(DAY, -365, getdate())) as 'Letzte 365 Tage',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
AND YEAR(tBestellung.dErstellt) = YEAR(DATEADD(YEAR, -1, getdate()))) as 'Vorjahr',
(SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = @Key
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten
) as 'Gesamt'
ORDER BY Plattform
 

SportNet

Sehr aktives Mitglied
16. Oktober 2014
167
43
wenn bei dir " berechnet wurden " bedeutet, dass eine Rechnung erstellt wurde, kannst du in jedem Select einen Join auf tRechnung machen.

So wären dann Aufträge, die keine Rechnung haben, nicht mit in den Daten drin.
 

SLINGSHOT

Aktives Mitglied
3. November 2020
40
4
Genau das heißt es. Könntest du mir vielleicht ein Beispiel geben damit ich weiß wie das auszusehen hat?

Vielen Dank schon mal!
 

SportNet

Sehr aktives Mitglied
16. Oktober 2014
167
43
Ergänze in jeder Berechnung folgendes: join trechnung on trechnung.tBestellung_kBestellung = tBestellung.kBestellung

hier ein Beispiel:


SQL:
SELECT ROUND(CONVERT(FLOAT, ISNULL(SUM(tbestellpos.nAnzahl), 0.0)), 2) AS absatz
FROM tbestellung
JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung
join trechnung on trechnung.tBestellung_kBestellung = tBestellung.kBestellung
WHERE tbestellpos.tArtikel_kArtikel = 34816
AND tbestellung.cType = 'B'
AND tBestellung.nStorno = 0 -- Stornierte Aufträge nicht beachten

Bedenke aber auch, dass das die Zahlen VOR "Gutschriften" sind. Daher wenn ein KD etwas retourniert, müsste man dies ggf. wieder abziehen.
 

SLINGSHOT

Aktives Mitglied
3. November 2020
40
4
Perfekt das hat geklappt! Vielen vielen Dank für die Hilfe!

Gutschriften interessieren mich weniger da wir als Vertrieb/Großhandel tätig sind und somit wenig Gutschriften erstellen.

Ein kleines Manko gibt es aber das ist nicht soo schlimm. Die Auswertung bezieht sich auf das Auftragsdatum und nicht auf das Rechnungsdatum. Gibt's da noch irgendeine Möglichkeit das noch einzustellen?

Nochmals vielen Dank!
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Zugang zu Kategorien nur per Kennworteingabe Plugins für JTL-Shop 3
Neu JTL Wawi Bild-Upload unvollständig oder nur als mit meinem PC hochgeladen zu sehen User helfen Usern - Fragen zu JTL-Wawi 2
Neu List & Label Neue Vorlage Projektbaustein Bild Logo nur auf erstem Exemplar anzeigen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Stickprogramm - Kosten die Kunde nur einmalig bezahlen muss Allgemeine Fragen zu JTL-Shop 1
Neu Vorlagen: Formel um Textfeld nur auf der letzten Seite der Rechnung darzustellen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu JTL überträgt Versandart Sendungsnummer nur teilweise an Amazon Amazon-Anbindung - Fehler und Bugs 3
Gelöst Packtisch+ 1.8.112 : Rechnung wird bei Teillieferung erzeugt, obwohl als Ausführungsbedingung "Nur bei der letzten Teillieferung" ausgewählt ist. JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 2
Neu Umzug auf neuen Rechner mit nur einem Mandant User helfen Usern - Fragen zu JTL-Wawi 3
Neu wenn abweichende Adresse dann nur weiße Seite? JTL-Shop - Fehler und Bugs 7
Neu Produktkategorie in "Vorauswahl Produktkategorien" nicht verfügbar / Variationswerte "Size" nicht verfügbar, nur size_name Amazon-Anbindung - Fehler und Bugs 0
Worker angeblich nicht gestartet und nicht konfigurierbar - Aber auf nur einem neuen Win11 Client?!? JTL-Wawi 1.7 2
Neu Amazon Lister übergibt nur das Hauptbild an Amazon, weiter Bilder werden nicht übertragen Amazon-Lister - Fehler und Bugs 0
Neu Preise nur mit login. möglich? Allgemeine Fragen zu JTL-Shop 4
In Bearbeitung Mehrere Karten/Buchnungskonten aber nur ein Karten-Terminal (Ethernet) Allgemeine Fragen zu JTL-POS 4
Neu OnPage Composer lädt nicht! Nur blauer Balken - OPC startet nicht! JTL-Shop - Fehler und Bugs 7
Nur noch sporadischer Versand per Mail von Rechnungen, Lieferscheinen und Mahnungen nach Update auf Version 1.8. JTL-Wawi 1.8 0
Gelöst "Nur letzten ausführen" führt dennoch mehrere Gelöste Themen in diesem Bereich 3
Neu UVP nur in Artikeldetails, NICHT auf Artikelliste? Templates für JTL-Shop 1
Neu Lieferstatus anzeigen "Nur, wenn Lagerbestand 0 ist" Allgemeine Fragen zu JTL-Shop 0
Rechnungserstellung sehr umständlich - nur einzeln möglich JTL-Wawi 1.8 4
SQL ifGetPrice liefert nur netto Preise, wie komme ich an Brutto ran? JTL-Wawi 1.7 4
Neu Nur eine Währung bei der AB und Rechnung JTL-Wawi 1.6 0

Ähnliche Themen