Subtraktion ist nicht nur etwas für Zahlen! SQL Server bietet mehrere eingebaute Funktionen und Operatoren, die dir beim Subtrahieren von Zahlen und Datumswerten helfen. Und anders als mit Stift und Papier musst du immer an NULL denken. Legen wir mit ein paar Beispielen los.
Subtraktion in SQL Server verstehen
Subtraktion kommt in SQL Server typischerweise in zwei Situationen zum Einsatz: bei Berechnungen mit numerischen Daten und beim Bearbeiten von Datetime-Werten. Werte zu subtrahieren ist oft praktisch, wenn du berechnete Werte direkt in SQL Server erzeugen willst.
Einfache Subtraktion
Fangen wir mit einer einfachen Subtraktion an, um das Prinzip zu verdeutlichen. Angenommen, wir haben eine Tabelle namens „Orders“ mit den Spalten „TotalAmount“ und „DiscountAmount“.
SELECT TotalAmount, DiscountAmount,
TotalAmount - DiscountAmount AS ActualAmount
FROM Orders;
In diesem einfachen Beispiel ziehen wir „DiscountAmount“ von „TotalAmount“ ab und geben das Ergebnis als „ActualAmount“ aus.
Subtraktion bei Zeitintervallen
Subtraktion wird auch häufig genutzt, um die Differenz zwischen zwei Datetime-Werten zu berechnen. SQL Server hat mehrere Datums- und Zeittypen: smalldatetime, datetime, datetime2, datetimeoffset. Für die Datumssubtraktion können wir die Funktion DATEDIFF() verwenden.
Beispiel:
SELECT OrderID, OrderDate,
DATEDIFF(day, OrderDate, GETDATE()) AS DaysElapsed
FROM Orders;
Dieser Befehl berechnet und zeigt die Anzahl der Tage an, die seit jeder Bestellung bis heute vergangen sind (GETDATE liefert das heutige Datum).
Ergebnismengen mit Subtraktion in SQL Server aggregieren
Auch das Aggregieren von Ergebnismengen mit Subtraktion ist in SQL Server ziemlich üblich. Du musst zum Beispiel vielleicht den Gesamtumsatz eines Zeitraums aggregieren und davon die im selben Zeitraum gewährten Rabatte abziehen.
Beispiel:
SELECT
( SELECT SUM(TotalAmount) FROM Orders where OrderDate like '2022-%' ) -
( SELECT SUM(DiscountAmount) FROM Orders where OrderDate like '2022-%' ) as NetSales
Der obige Befehl zeigt den Nettoumsatz für das Jahr 2022 an, indem er die Gesamtrabatte vom Gesamtumsatz abzieht.
Umgang mit NULL
In SQL Server ergibt eine Subtraktion mit NULL einen NULL-Wert. Wenn du NULL lieber wie 0 behandeln möchtest, solltest du diese Fälle abfangen, um unerwartete NULLs in deinen Ergebnissen zu vermeiden. Das ist nicht immer sinnvoll, also entscheide mit Bedacht.
SELECT OrderID,
ISNULL(TotalAmount, 0) - ISNULL(DiscountAmount, 0) AS NetAmount
FROM Orders;
Jetzt bist du ein Subtraktions-Profi
Es gibt noch weitere Möglichkeiten, in SQL Server effektiv Werte zu subtrahieren. Probier also weiter mit diesen Befehlen herum und entdecke selbst noch mehr. Jede Abfrage, die du schreibst, bringt dich einen Schritt näher dahin, SQL Server zu meistern. Viel Spaß beim Abfragen!
Dieser Artikel wurde mit Blick auf SQL Server geschrieben. Alle Befehle und Erklärungen beziehen sich daher auf SQL Server. Wie diese Befehle in anderen Datenbank-Engines funktionieren, erfährst du in der offiziellen Dokumentation der jeweiligen Datenbank.
Beekeeper Studio ist eine kostenlose & quelloffene Datenbank-GUI
Das beste SQL-Abfrage- & Editor-Tool, das ich je benutzt habe. Es bietet alles, was ich zum Verwalten meiner Datenbank brauche. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio ist schnell, intuitiv und einfach zu bedienen. Beekeeper unterstützt jede Menge Datenbanken und läuft hervorragend auf Windows, Mac und Linux.
Was Nutzer über Beekeeper Studio sagen
„Beekeeper Studio hat meinen alten SQL-Workflow komplett ersetzt. Es ist schnell, intuitiv und macht die Arbeit mit Datenbanken wieder zum Vergnügen.“
„Ich habe schon viele Datenbank-GUIs ausprobiert, aber Beekeeper findet die perfekte Balance zwischen Funktionsumfang und Einfachheit. Es funktioniert einfach.“