Frage : Sql-Bediener qurey Ausgabe

Ich habe ein Tabelle


DEipUserID smallint, NICHT, das UNGÜLTIGES PK
DEipServiceID smallint Y PK
DEipServiceClientID smallint Y
UseDateID int Y
UseTimeID int Y
SubscriptionProfileID smallint N
IsLatest Tinyint Y
UseCount tinyint Y
DeipDataSourceID int N
DEipTrackingID bigint N
EipInsertDtTm bigint N
EipUpdateDtTm bigint N

How ich unterhalb der Logik. erziele.

For die erste Reihe islatest =1, 2. Reihe ankommt gehen zur prev Aufzeichnungsänderung IsLtatest = 0 und setzten IsLatest = 1 für neues record.

Thanks im Voraus

s

Antwort : Sql-Bediener qurey Ausgabe

>> ist der Primärschlüssel eingeschaltet (DEipUserID+DEipServiceID)
O.K., die Frage ist dann falsch.  Weil per Definition, wenn Sie auf dem Primärschlüssel verteilen, jedes einzelne man einzigartig ist und Reihenzahl von 1. zurückbringen wird.

Zur Frage zurück gehen,
[Für die erste Reihe kommt islatest =1, 2. Reihe gehen zur prev Aufzeichnungsänderung IsLtatest = 0 und setzten IsLatest = 1 für neuen Rekord.] an
Und eine Frage, die Sie oben hatten, vermute ich, dass Sie wirklich, was sind die Definition „der 2. Reihe“, sind es „2. und rudern danach pro DEipUserID+DEipServiceClientID“ wünschen?  Was auch immer es ist, Fach durch diese Kombination.


; mit tmp wie (
deipuserid, deipserviceid, islatest, rn=row_number () (Fach durch deipuserid, deipserviceClientid Auftrag durch eipinsertdttm desc) von dbo.FactUserClientUse) vorbei vorwählen
tmp gesetztes islatest=case aktualisieren wenn rn=1 dann 1 sonst 0 Ende
Weitere Lösungen  
 
programming4us programming4us