Gelöst Versand: Anzahl Pakete pro Dienstleister und Zeitraum

HMside

Mitglied
14. April 2019
12
1
Hallo zusammen,

ich bin auf der Suche nach einer eigenen Ansicht unter "Versand > Versendet" um die Anzahl der Pakete je Dienstleister (aktueller Tag) auf einen Blick erfassen zu können.
Hat jemand von Euch eventuell schon so eine Ansicht erstellt oder ein Code-Snippet, welches in die Richtung geht und würde mir dieses freundlicherweise zur Verfügung stellen?
 
  • Gefällt mir
Reaktionen: wasserfilter-experten

pseudolog

Aktives Mitglied
12. September 2011
30
8
jein :) ohne Verrenkungen nur nach Versandart nicht nach Dienstleister. Die
Übersichten scheinen auch nur zu triggern wenn eine Eintrag ausgewählt ist.

Annotation 2019-11-21 124650.jpg

SQL:
SELECT SUM(lf.nAnzahlVersendetePakete) 'Pakete'
    , CASE
        WHEN (GROUPING(va.cName) = 1)
            THEN 'Gesamt'
        ELSE va.cName
        END AS [Versandart]
FROM Versand.lvLieferschein lf
INNER JOIN tversandart va
    ON va.kVersandArt = lf.kVersandart
WHERE (CONVERT(DATE, lf.dVersendet, 1)) = (CONVERT(DATE, GetDate(), 1))
GROUP BY va.cName
WITH ROLLUP
ORDER BY GROUPING(va.cName)
    , 'Pakete' DESC
 

MichaelH

Sehr aktives Mitglied
17. November 2008
11.030
392
@pseudolog mich würde das "Pro Monat" interessieren, kannst du das bitte posten ?

Also laufendes Jahr pro Monat und das Jahr im SQL selbst als Konstante so kann man es selbst sehr einfach anpassen.

Sortierung (Jahr / )Monat / Versandart
 
  • Gefällt mir
Reaktionen: basteldehs

pseudolog

Aktives Mitglied
12. September 2011
30
8
Der aktuelle Monat ist trivial, da änder sich nur das Datum

SQL:
SELECT SUM(lf.nAnzahlVersendetePakete) 'Pakete'
    , CASE
        WHEN (GROUPING(va.cName) = 1)
            THEN 'Gesamt'
        ELSE va.cName
        END AS [Versandart]
FROM Versand.lvLieferschein lf
INNER JOIN tversandart va
    ON va.kVersandArt = lf.kVersandart
WHERE (CONVERT(DATE, lf.dVersendet, 1)) >= DATEADD(DAY, - DAY(GETDATE()) + 1, CAST(GETDATE() AS DATE))
GROUP BY va.cName
WITH ROLLUP
ORDER BY GROUPING(va.cName)
    , 'Pakete' DESC

@MichaelH Ich bin nicht ganz sicher, dass ich verstanden habe was rauskommen soll ;) in der Form?:

Capture.PNG

SQL:
DECLARE @STARTJAHR INT = 2018

SELECT YEAR(lf.dVersendet) 'Jahr'
    , MONTH(lf.dVersendet) 'Monat'
    , SUM(lf.nAnzahlVersendetePakete) 'Pakete'
    , va.cName 'Versandart'
FROM Versand.lvLieferschein lf
INNER JOIN tversandart va
    ON va.kVersandArt = lf.kVersandart
WHERE YEAR(lf.dVersendet) >= @STARTJAHR
GROUP BY YEAR(lf.dVersendet)
    , MONTH(lf.dVersendet)
    , va.cName
ORDER BY 'Jahr' DESC, 'Monat' DESC, 'Versandart'
 

Kirmesbedarf24

Aktives Mitglied
15. Dezember 2017
25
3
Hi,

dieses SQL funktioniert soweit perfekt. DANKE ..
Gibt es zusätzlich noch die Möglichkeit den Versand von Umlagerungen mit einzubeziehen. Das schein aktuell nicht der Fall zu sein.

Danke