Einzelnen Beitrag anzeigen

Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#7

AW: MSSQL Schleife ueber einen gewissen Zeitraum

  Alt 17. Feb 2012, 10:25
Danke fuer die vielen inspirierenden Antworten!

Ich habe mir jetzt eine Loesung zusammengebaut, welche das gewuenschte Ergebnis liefert: Die Tage ohne Eintragung ueber einen gewissen Zeitraum!

So siehts aus:

SQL-Code:
DECLARE @begindate DATETIME
DECLARE @begindate_end DATETIME
DECLARE @enddate DATETIME
DECLARE @i INT
DECLARE @diffdays INT

SET @i = 1
SET @begindate='2011-01-01 00:00:00'
SET @enddate='2012-02-17 23:59:59'
SET @diffdays=DATEDIFF(DAY, @begindate, @enddate)

WHILE (@i <= @diffdays+1)
BEGIN

SET @begindate_end = DATEADD(HOUR,23,@begindate)
SET @begindate_end = DATEADD(MINUTE,59,@begindate_end)
 
 IF NOT EXISTS (
 SELECT [telefonate]FROM [ABC].[dbo].[t_telefonate] WHERE LappenID = 2 AND FirstTime BETWEEN @begindate AND @begindate_end)
 BEGIN
   PRINT '*** Row NOT found between:'
   PRINT @begindate
   PRINT @begindate_end
   PRINT '----------------------------'
 END
 SET @begindate = DATEADD(DAY,1,@begindate)
  
 SET @i = @i + 1
END
Im Prinzip ganz einfach:
- Den Zeitraum bestimmen
- Differenz in Tagen ermitteln
- Schleife ueber den Zeitraum
- Den Tag von 0 Uhr bis 23:59 pruefen, kommt nix zurueck existiert kein Eintrag fuer den Tag
- Tagescounter hochzaehlen

Bestimmt unter aller Sau, funktioniert aber erstmal
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat