Problem Bestimmung

24/10/2008 - 13:17 von Klaus-Peter Weiß | Report spam
Hallo zusammen,

ich hoffe mal ich bin hier nicht OT.

Eine Taballe enthàlt Eintràge mit Zeitstempel und einem EreignisCode (nach
SEMI E10 wenn das ein Begriff ist).

Die Tabelle mit den Daten

ZeitStempel Code
10.10.2008 10:12:30 10200
10.10.2008 11:15:30 90000
10.10.2008 12:00:10 20000
10.10.2008 12:33:43 90000

Ich brauchen nun eine Abfrage das folgendes Ausgibt:

ZeitStart ZeitEnde Code
10.10.2008 10:12:30 10.10.2008 11:15:30 10200
10.10.2008 11:15:30 10.10.2008 12:00:10 90000
10.10.2008 12:00:10 10.10.2008 12:33:43 20000
10.10.2008 12:33:43 90000

Ich hoffe jemand hat die richtige Idee und kann mir helfen, ich stehe
total auf dem Schlauch.
Danke schon mal im Voraus.


Klaus
 

Lesen sie die antworten

#1 Christoph Muthmann
24/10/2008 - 13:59 | Warnen spam
Klaus-Peter Weiß wrote:
Hallo zusammen,

ich hoffe mal ich bin hier nicht OT.

Eine Taballe enthàlt Eintràge mit Zeitstempel und einem EreignisCode
(nach SEMI E10 wenn das ein Begriff ist).

Die Tabelle mit den Daten

ZeitStempel Code
10.10.2008 10:12:30 10200
10.10.2008 11:15:30 90000
10.10.2008 12:00:10 20000
10.10.2008 12:33:43 90000

Ich brauchen nun eine Abfrage das folgendes Ausgibt:

ZeitStart ZeitEnde Code
10.10.2008 10:12:30 10.10.2008 11:15:30 10200
10.10.2008 11:15:30 10.10.2008 12:00:10 90000
10.10.2008 12:00:10 10.10.2008 12:33:43 20000
10.10.2008 12:33:43 90000

Ich hoffe jemand hat die richtige Idee und kann mir helfen, ich stehe
total auf dem Schlauch.
Danke schon mal im Voraus.



Hallo Klaus,
so könnte es gehen!

declare @MyTab Table(Zeitstempel datetime, Code varchar(10))

insert into @MyTab values('10.10.2008 10:12:30', 10200)
insert into @MyTab values('10.10.2008 11:15:30', 90000)
insert into @MyTab values('10.10.2008 12:00:10', 20000)
insert into @MyTab values('10.10.2008 12:33:43', 90000)

select * from @MyTab

Select a.ZeitStempel as ZeitStart, b.ZeitStempel as ZeitEnde, a.Code as Code
from @MyTab a left Join
@MyTab b on a.ZeitStempel < b.ZeitStempel
where b.Zeitstempel in (select Top 1 Zeitstempel from @MyTab c where
c.Zeitstempel > a.ZeitStempel)
or b.ZeitStempel is Null

Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen