Neu Korrektes Datumsformat in SQL-Abfrage

Ahok

Mitglied
11. September 2023
122
5
Unten befinden sich Teile eines SQL-Mitschnitts einer Statistik-Auswertung. Daraus soll eine Workflow Mail werden, die einmal im Monat versendet wird. Im Mitschnitt ist schon jeweils ein spezielles Datum eingesetzt in den DECLARE Anweisungen. Wie kriege ich das Variabel hin, damit immer das Datum von heute und das Datum von heute+1 Monat genommen wird?

Ich habe schon damit rumgespielt und versucht und BETWEEN GETDATE() AND DATEADD(month, 1, GETDATE()) unten einzufügen (fünfte Zeile von unten), aber das scheint ein falsches Datumsformat unten einzufügen und die Abfrage kommt leer zurück. Die DECLARE Anweisung verstehe ich nicht ganz. Ist datetime eine Anweisung oder eine selbsterstellt Variable? Was bedeutet die 120?

Code:
DECLARE @von datetime = CONVERT(datetime, '2024-04-01 00:00:00', 120);
DECLARE @bis datetime = CONVERT(datetime, '2024-04-30 23:59:59', 120);

    SELECT
    ISNULL(NULLIF(KundenAdresse.cFirma, ''), 'Keine Firma') AS Filiale,
    SUM([Verkauf].[tAuftragPosition].fAnzahl) AS Verkaufsmenge,
    ISNULL( MONTH([Verkauf].[tAuftrag].dErstellt), 0) AS Monat

FROM
    [Verkauf].[tAuftragPosition]

LEFT JOIN [tArtikel] ON [tArtikel].kArtikel = [Verkauf].[tAuftragPosition].kArtikel
JOIN [Verkauf].[tAuftrag] ON [Verkauf].[tAuftrag].kAuftrag = [Verkauf].[tAuftragPosition].kAuftrag
JOIN [tkunde] ON [tkunde].kKunde = [Verkauf].[tAuftrag].kKunde
JOIN [tAdresse] AS KundenAdresse ON KundenAdresse.kKunde = [tkunde].kKunde AND (KundenAdresse.nStandard IN (1)) AND (KundenAdresse.nTyp IN (1))
    WHERE
([Verkauf].[tAuftrag].nType IN (1)) AND
    ([Verkauf].[tAuftrag].nStorno IN (0)) AND
    (ISNULL([tkunde].kKunde, 0) IN (65255,65418,65420,65421,66071,66653,83532)) AND
    (ISNULL([tArtikel].kHersteller, 0) IN (804)) AND
    ([Verkauf].[tAuftrag].dErstellt IS NOT NULL AND [Verkauf].[tAuftrag].dErstellt BETWEEN @von AND @bis)
GROUP BY
    ISNULL(NULLIF(KundenAdresse.cFirma, ''), 'Keine Firma'),
    ISNULL( MONTH([Verkauf].[tAuftrag].dErstellt), 0)
ORDER BY Verkaufsmenge DESC;
;
 
Zuletzt bearbeitet:

Christoph E.

Gut bekanntes Mitglied
Mitarbeiter
11. Oktober 2021
36
31
Die 120 im Zusammenhang mit CONVERT sorgt für eine spezielle Formatierung eines Datums als String im Format "yyyy-mm-dd hh:mi:ss", siehe [CAST und CONVERT (Transact-SQL)] (was hier aber eigentlich unnötig ist, da die Variable sowieso vom Typ DATETIME und nicht STRING ist).

Die DECLAREs erzeugen zwei Variablen @von und @bis, die dann unten im SQL verwendet werden.
Für Deinen Fall solltest Du am Besten den SQL unten unverändert lassen und stattdessen oben die gewünschten Datums im DECLARE auf die gewünschten Werte anpassen:

DECLARE @von datetime = DATEADD(MONTH, -1, GETDATE());
DECLARE @bis datetime = GETDATE();
(ich interpretiere das mal so, das Du die Daten aus dem letzten Monat anzeigen willst)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Ahok

Ahok

Mitglied
11. September 2023
122
5
Die 120 im Zusammenhang mit CONVERT sorgt für eine spezielle Formatierung eines Datums als String im Format "yyyy-mm-dd hh:mi:ss", siehe [CAST und CONVERT (Transact-SQL)] (was hier aber eigentlich unnötig ist, da die Variable sowieso vom Typ DATETIME und nicht STRING ist).

Die DECLAREs erzeugen zwei Variablen @von und @bis, die dann unten im SQL verwendet werden.
Für Deinen Fall solltest Du am Besten den SQL unten unverändert lassen und stattdessen oben die gewünschten Datums im DECLARE auf die gewünschten Werte anpassen:


(ich interpretiere das mal so, das Du die Daten aus dem letzten Monat anzeigen willst)
Herzlichsten Dank! Das funktioniert. Und ja zu deiner Interpretation, da wollte ich wohl in die Zukunft gucken 😄
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu SQL Abfrage User helfen Usern - Fragen zu JTL-Wawi 0
Neu Plattform Feld per SQL setzen - mehrere Marken unter einer Firma verkaufen User helfen Usern - Fragen zu JTL-Wawi 5
Neu Workflow - SQL - Frage zur DATEADD()-Funktion User helfen Usern - Fragen zu JTL-Wawi 2
Neu Probleme beim Abfrage kopieren von SQL Management Studio User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wie kann man Anzahl der VPE per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 1
Neu Kundendatenimport via SQL JTL-Wawi 1.6 1
SQL Abfrage für verkaufte Artikel + aktueller Bestand JTL-Wawi 1.8 1
Neu SQL Ausgabe Bestellinformationen JTL Ameise - Eigene Exporte 4
Neu SQL Script - geänderte Tabellen. User helfen Usern - Fragen zu JTL-Wawi 3
Wie kann ich etwas in der WAWI Datenbank per SQL ändern? JTL-Wawi 1.8 2
Datenbank-Abfrage per SQL nach Lagermenge pro Artikel & Warenbereich (WMSLager) JTL-Wawi 1.8 1
Neu Logfile: SQL Fehler, aber warum? JTL-Shop - Fehler und Bugs 2
Beantwortet #GEFUNDEN# Suche jemand , der uns eine (automatische) SQL Abfrage erstellen kann mit Mail Ausgabe Dienstleistung, Jobs und Ähnliches 2
Neu Erstinstallation JTL WaWi 1.8.12 - heruntergeladen wird SQL Express 2017 _statt_ der empfohlenen 2022 Version Installation von JTL-Wawi 8
Neu MS SQL Server 2022 oder MS SQL Server 2022 Express? Installation von JTL-Wawi 8
Neu SQL-Fehler bei Volltextsuche und Sonderzeichen JTL-Shop - Fehler und Bugs 0
Neu SQL-Abfrage bei Kundenanlage JTL-Wawi 1.7 2
Neu einfache SQL Verknüfpung zweier Tabellen, z.B. Artikel mit ArtikelBeschreibung 1.6.46.1 Gelöste Themen in diesem Bereich 13
Neu CSV-Datei direkt in einer SQL-Abfrage verwenden User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Ausgabe der Varko-Auswahl eines Artikels, mehrsprachig Tabelle zwei mal auf sich Joinen? User helfen Usern - Fragen zu JTL-Wawi 5
Neu SQL Abfrage in Excel User helfen Usern - Fragen zu JTL-Wawi 12
Neu SQL-Erfahrene vor - Nach Datenrettung - fehlende Aufträge lassen sich nicht einfügen - Ideen? User helfen Usern 4
Neu Nach Installation eines neuen SQL Servers klappt die Verbindung vom Benutzer-PC zum Server-PC nicht mehr. Installation von JTL-Wawi 5
Neu Fehler SQL-Schema importieren bei Neuinstallation Installation / Updates von JTL-Shop 7
Neu Update MS SQL 2014 auf MS SQL 2022 User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen