Questione : Edizione di qurey dell'assistente di Sql

Ho uno smallint del


DEipUserID della Tabella

How del bigint N del
EipUpdateDtTm del bigint N del
EipInsertDtTm del bigint N del
DEipTrackingID del
DeipDataSourceID il int N del tinyint Y del
UseCount del
IsLatest Tinyint Y dello smallint N del
SubscriptionProfileID del
UseTimeID il int Y del
UseDateID il int Y dello smallint Y dello smallint Y PK
DEipServiceClientID di PK
DEipServiceID realizzo sotto logica. il

For la prima fila =1 più islatest, seconda fila arriva va al cambiamento IsLtatest dell'annotazione del prev = 0 ed ha messo IsLatest = 1 per il nuovo

di record.

Thanks in anticipo class= del

Risposta : Edizione di qurey dell'assistente di Sql

>> la chiave primaria è su (DEipUserID+DEipServiceID)
L'approvazione, la domanda allora è errata.  Poiché per definizione, quando dividete sulla chiave primaria, ogni singolo è unico e restituirà un numero di fila di 1.

Andando indietro alla domanda,
[Per la prima fila =1 più islatest, seconda fila arriva va al cambiamento IsLtatest dell'annotazione del prev = 0 ed ha messo IsLatest = 1 per il nuovo record.]
Ed una domanda avete avuto sopra, ritengo sospetto che realmente volete, che cosa siete la definizione “della seconda fila„, siete esso “seconda e da allora in poi remate per DEipUserID+DEipServiceClientID„?  Qualunque è che, divisorio tramite quella combinazione.


; con tmp come (
selezionare il deipuserid, il deipserviceid, più islatest, rn=row_number () sopra (divisorio da deipuserid, da ordine del deipserviceClientid dal desc del eipinsertdttm) a partire da dbo.FactUserClientUse)
aggiornare il islatest=case stabilito del tmp quando rn=1 allora 1 altrimenti 0 estremità
Altre soluzioni  
 
programming4us programming4us