Archiv

Artikel Tagged ‘SQL’

SQL mit Datumsspalten

6. August 2009 Mario Noack Keine Kommentare

Eher zufällig ist mir der SQL

SELECT CONVERT (datetime, CONVERT (varchar, GETDATE(), 101), 101);

aufgefallen (natürlich ursprünglich in einem größeren Kontext). Schnell war die scheinbare Optimierung durchgeführt:

SELECT GetDate();

Diese habe ich dann zum Glück noch einmal überprüft und konnte doch eine Abweichung feststellen: GetDate liefert das aktuelle Datum inkl. Uhrzeit zurück. Der doppelte Convert entfernt einfach die Uhrzeit. Das ist immer dann sinnvoll, wenn Datumswerte ohne Uhrzeit gespeichert werden und man mit diesen Rechnen möchte.

In der MSDN ist auch erklärt, was der Parameter 101 im Convert bewirkt: Es wird ein Datum im Format mm/tt/jjjj als String erzeugt.
kick it on dotnet-kicks.de

KategorienAllgemein Tags: ,

SQL Count, das unbekannte Wesen

5. August 2009 Mario Noack Keine Kommentare

Bei der Suche nach einem praktischen SQL-Skript für eine Statistik, bin ich auf die Möglichkeit gestoßen, den SQL Count Befehl zu verwenden:

SELECT a.BewertungId, 	
 Count(*) Gesamt,
 COUNT(E_Datum) Offen, 
 Count(CASE WHEN ((a.Abgelehnt = 0) OR (b.OFI = 0)) THEN NULL Else 1 END) Abgelehnt
FROM Aktivitaeten a, Bewertung b
WHERE a.BewertungId = b.Id
GROUP BY a.BewertungId
ORDER BY a.BewertungId

Die Nutzungsmöglichkeit des COUNTs ist dabei vielfältig:

  • Üblicherweise wird Count mit dem Parameter (*) aufgerufen. Dieser Aufruf führt zur vollständigen Zählung der Datenmenge.
  • Gibt man aber als Parameter einen Spaltennamen ein, so werden nur die Datensätze gezählt, die in der gewünschten Spalte einen Eintrag ungleich NULL haben.
  • Aber auch die Angabe eines Ausdrucks, der NULL oder einen Wert liefert, ist möglich.

Das aufgeführte Beispiel zählt also auf einmal: alle Datensätze, alle Datensätze mit einem Eintrag in der Spalte E_Datum und als letzten Punkt alle Datensätze, die eine Ablehnung enthalten.
kick it on dotnet-kicks.de

KategorienDatenbank Tags: