Benutzer mit den meisten Antworten
Zeit Diff in 2 Zeilen

Frage
-
Hallo,
ich habe folgende Tabelle
lfd gate Datum Status
456 100 25.07.2012 1
456 120 26.07.2012 1
456 140 31.08.2012 1
456 150 Null 0Für eine KPI Berechnung brauche ich Dauer in Tagen wie lange von Gate 100 - 140
gebraucht wurde.
Für einen Tipp wäre ich sehr dankbar.Chris
- Bearbeitet Chris Schaefer1 Montag, 10. Dezember 2012 09:48
Antworten
-
Hallo Chris,
da ich nicht weiß, welches Kriterium für die Auswahl von Relevanz ist, gehe ich von Status = 1 aus. Mit dem nachfolgenden Code kannst Du die Differenzen ermitteln.
DECLARE @t TABLE ( lfd int NOT NULL IDENTITY (456, 1) PRIMARY KEY, gate tinyint NOT NULL, Datum date NOT NULL, Status tinyint NOT NULL DEFAULT (0) ); INSERT INTO @t (gate, Datum, Status) VALUES (100, '20120725', 1), (120, '20120726', 1), (140, '20120831', 1) ;WITH CTE AS ( SELECT ROW_NUMBER() OVER (ORDER BY Datum) AS RowNumber, gate, Datum FROM @t WHERE Status = 1 ) SELECT cte.rownumber, r.rownumber, DATEDIFF(dd, cte.Datum, r.Datum) FROM CTE INNER JOIN CTE r ON (cte.RowNumber = r.RowNumber - 1)
Uwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITP Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de
SQL Server Blog (german only)- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 3. Januar 2013 16:51
Alle Antworten
-
Hallo Chris,
da ich nicht weiß, welches Kriterium für die Auswahl von Relevanz ist, gehe ich von Status = 1 aus. Mit dem nachfolgenden Code kannst Du die Differenzen ermitteln.
DECLARE @t TABLE ( lfd int NOT NULL IDENTITY (456, 1) PRIMARY KEY, gate tinyint NOT NULL, Datum date NOT NULL, Status tinyint NOT NULL DEFAULT (0) ); INSERT INTO @t (gate, Datum, Status) VALUES (100, '20120725', 1), (120, '20120726', 1), (140, '20120831', 1) ;WITH CTE AS ( SELECT ROW_NUMBER() OVER (ORDER BY Datum) AS RowNumber, gate, Datum FROM @t WHERE Status = 1 ) SELECT cte.rownumber, r.rownumber, DATEDIFF(dd, cte.Datum, r.Datum) FROM CTE INNER JOIN CTE r ON (cte.RowNumber = r.RowNumber - 1)
Uwe Ricken
MCITP Database Administrator 2005
MCITP Database Administrator 2008
MCITP Microsoft SQL Server 2008, Database Development
db Berater GmbH
http://www-db-berater.de
SQL Server Blog (german only)- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 3. Januar 2013 16:51
-
Hallo Chris Schaefer1,
Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.