LOG Einträge: alter / neuer Wert anzeigen

Rambo21

Aktiver Benutzer
Beiträge
37
Hallo,

ich habe eine Tabelle, welche die Änderungen in der Applikation speichert. Die wichtigsten Felder sind
Id (das ist die Kundennummer zB. 4850),
EntityStatus (Wert, der für mich hier wichtig ist: Werte sind 0, 1, 2, etc...),
LogTime (2016-03-01 12:47:45.540) und
LogUser (Hans Bauer)

Jetzt habe ich 2 Fälle:
1- Neuer Kunde, dessen EntityStatus ZUM ERSTEN MAL eingegeben wird.
2- Bestehender Kunde, der schon mal einen Wert hatte und der geändert wurde, zB. alter Wert 0, neuer Wert 6

Folgende Darstellung brauch ich nun:
ID | ENTITY_STATUS_NEU | ENTITY_STATUS_ALT | LOG_TIME | LOG_USER

ENTITY_STATUS_ALT ist beim neuen Kunden (Fall 1) NULL und beim bestehenden Kunden (Fall 2) der vorige Eintrag in der Tabelle

Danke für die Hilfe und LG
 
Werbung:
Hallo,

wie genau werden diese Log-Einträge getätigt? Wie akretchmer schon schrieb sind LAG()/LEAD() eventuell dafür geeignet, aber genaueres könnte man sagen wenn man weiß wie du das tätigst...

viele Grüße
 
Werbung:
Hallo akretschmer und Chuky666,

der untere Skript macht genau das was ich brauche. Danke für den Hinweis.

Code:
use CustomerDBWien
SELECT A.Id AS CUSTOMER_NUMBER
     , A.EntityStatus AS NEW_FATCA_VALUE
     , LAG(A.EntityStatus, 1,0) OVER (ORDER BY A.RecordTime) AS OLD_FATCA_VALUE
     , A.LogTime AS CHANGING_DATE
     , SUBSTRING (A.LogUser, 5, 8)   AS CHANGING_USER
FROM Tabelle A
WHERE CONVERT (date, A.LogTime) = CONVERT (date, GETDATE()-1)
order by LogTime desc

LG
 
Zurück
Oben