Historien

05/08/2008 - 11:35 von Detlef | Report spam
Hallo,

habe Datensàtze und deren Historien. Jetzt geht es darum zu ermitteln, wann
ein bestimmtes Feld welchen Wert hatte. Bei hintereinanderliegenden
Eintràgen soll nur der erste angezeigt werden. (schwer zu beschreiben, aber
das Beispiel am Ende macht glaube ich alles klar)

Stehe ziemlich auf dem Schlauch, vielleicht könnt ihr mir da helfen.

Im voraus besten Dank
Detlef


Beispiel:
create table historie (datum datetime, status1 char(10), status2 char(10))
insert into historie values('1.01.2000', 'A', 'X')
insert into historie values('3.11.2001', 'A', 'X')
insert into historie values('1.04.2002', 'B', 'X')
insert into historie values('1.12.2003', 'B', 'Y')
insert into historie values('4.08.2004', 'C', 'Y')
insert into historie values('9.02.2005', 'A', 'Y')

Ergebnis für Status1:
1.01.2000 'A'
1.04.2002 'B'
4.08.2004 'C'
9.02.2005 'A'

Ergebnis für Status2:
1.01.2000 'X'
1.12.2003 'Y'
 

Lesen sie die antworten

#1 mike
05/08/2008 - 14:28 | Warnen spam
weiss zwar nicht genau was Du meinst,

aber hier mein vorschlag:


select status1,max(datum) as datum into #temp
from historie
group by status1

select h.* from historie h
join #temp t on t.datum=h.datum and t.status1=h.status1
order by h.status1

liefert:
2005-09-02 00:00:00.000 A Y
2003-01-12 00:00:00.000 B Y
2004-04-08 00:00:00.000 C Y

ich nehme an, status1 ist sozusagen der key und satus 2 der value, und Du
möchtest für jeden key den neuersten value ?

Ähnliche fragen