Neu Suche SQL für die Ausgabe von Lieferländern mit wie vielen Paketen beliefert und welcher netto warenwert gestaffelt nach Jahr, Monat, Woche und Tag?

trennscheibenwelt

Sehr aktives Mitglied
17. März 2017
1.039
230
Herne
Hallo alle zusammen,

Ich bin auf der Suche nach einem SQL.
Ich möchte mir gerne in Excel eine Tabelle ausspucken lassen die mir Zeigt:
Wie viele Pakete in welches Land?
Was für einen Netto Wert haben die Pakete insgesamt?
Das ganze gerne gestaffelt nach Jahr, Monat, Woche und Tag.

Ist das so umsetzbar?
Gibt es eventuell eine Möglichkeit in der WAWI, die ich übersehen habe?
 

John

Sehr aktives Mitglied
3. März 2012
4.215
1.088
Berlin
Tabelle Versand > Lieferscheine > Versendet die Spalten für Land und Anzahl der Pakete einblenden. Dann die Tabelle exportieren. Warenwert ggf. per SVerweis aus den Aufträgen...

Dann selbst auswerten 😉
 
  • Gefällt mir
Reaktionen: trennscheibenwelt

wawi-dl

Sehr aktives Mitglied
29. April 2008
6.774
830
Wir haben dazu bereits diverse Abfragen gebaut, die mit unserer Toolbox mal kostenlos dabei sein werden.


Das sollte Umsatz je Land mit Anzahl Sendungen sein, gerade mal zammgewürfelt:

Code:
SELECT        DISTINCT tlieferadresse.cLand AS Lieferland,
            COUNT(tlieferadresse.cLand) AS Sendungen,
            FORMAT(CAST(SUM(tBestellungEckDaten.fWertNetto) AS DECIMAL(20, 2)), 'N', 'de-de') + ' €' AS 'Umsatz'
FROM        tBestellung INNER JOIN
            tlieferadresse ON tBestellung.kLieferAdresse = tlieferadresse.kLieferAdresse INNER JOIN
            tLieferschein ON tBestellung.kBestellung = tLieferschein.kBestellung INNER JOIN
            tBestellungEckDaten ON tBestellung.kBestellung = tBestellungEckDaten.kBestellung
WHERE        (tLieferschein.dErstellt >= CONVERT(DATETIME, '01.01.2020 00:00:00', 104)) AND (tLieferschein.dErstellt <= CONVERT(DATETIME, '31.12.2020 23:59:59', 104))
Group By    tlieferadresse.cLand
ORDER BY    Sendungen DESC


Damit kannst du mal grob Versandkosten auswerten und gegenüber deinen tatsächlichen Kosten packen:


Code:
SELECT        tversandart.cName, COUNT(tversandart.cName) AS 'Menge', REPLACE(CAST(SUM(tbestellpos.fVKPreis) AS DECIMAL(10,2)), '.', ',') + ' €' AS 'Versandkosten', REPLACE(CAST((SUM(tbestellpos.fVKPreis)/COUNT(tversandart.cName)) AS DECIMAL(10,2)), '.', ',') + ' €' AS 'Ø Versandkosten'
FROM        tversandart INNER JOIN
                tVersand ON tversandart.kVersandArt = tVersand.kVersandArt INNER JOIN
                tLieferschein ON tVersand.kLieferschein = tLieferschein.kLieferschein INNER JOIN
                tBestellung ON tLieferschein.kBestellung = tBestellung.kBestellung INNER JOIN
                tbestellpos ON tBestellung.kBestellung = tbestellpos.tBestellung_kBestellung
WHERE        (tLieferschein.dErstellt >= CONVERT(DATETIME, '01.01.2020 00:00:00', 104)) AND (tLieferschein.dErstellt <= CONVERT(DATETIME, '31.12.2020 23:59:59', 104) AND (tbestellpos.nType = '2'))
GROUP BY    tversandart.cName
ORDER BY    tversandart.cName


Übersicht aller Sendungen, kannst dann selbst filtern:

Code:
SELECT        CONVERT(NVARCHAR(10), tLieferschein.dErstellt, 104) AS Versanddatum,
            tLieferschein.cLieferscheinNr AS 'Lieferscheinnummer',
            tversandart.cName AS 'Versandart',
            REPLACE(CAST(SUM(tartikel.fArtGewicht * tbestellpos.nAnzahl) + tbestellung.fZusatzGewicht AS DECIMAL(10, 3)), '.', ',') + ' kg' AS Versandgewicht,
            tVersand.cIdentCode AS Trackingnummer,
            tlieferadresse.cLand AS Lieferland
FROM        tLieferschein INNER JOIN
            tbestellung ON tLieferschein.kBestellung = tbestellung.kBestellung INNER JOIN
            tbestellpos ON tbestellung.kBestellung = tbestellpos.tBestellung_kBestellung INNER JOIN
            tartikel ON tbestellpos.tArtikel_kArtikel = tartikel.kArtikel INNER JOIN
            tVersand ON tLieferschein.kLieferschein = tVersand.kLieferschein INNER JOIN
            tversandart ON tVersand.kVersandArt = tversandart.kVersandArt INNER JOIN
            tlieferadresse ON tBestellung.kLieferAdresse = tlieferadresse.kLieferAdresse
WHERE        (tLieferschein.dErstellt >= CONVERT(DATETIME, '01.01.2020 00:00:00', 104)) AND (tLieferschein.dErstellt <= CONVERT(DATETIME, '31.12.2020 23:59:59', 104))
GROUP BY    tLieferschein.dErstellt, tLieferschein.cLieferscheinNr, tversandart.cName, tbestellung.fZusatzGewicht, tVersand.cIdentCode, tlieferadresse.cLand
ORDER BY    tLieferschein.dErstellt
 

Ähnliche Themen