T-SQL Comment mettre à jour le fond/la dernière ligne uniquement?
Je veux mettre à jour le fond/la dernière ligne de mon tableau. J'ai essayer de mettre en œuvre cette solution, mais rien ne semble que la syntaxe correcte:
UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
ORDER BY PeriodID DESC
OU
UPDATE TOP(1) @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
FROM @ResultTable
ORDER BY PeriodID DESC
Ce que j'ai jusqu'à maintenant, le travail, c'est:
UPDATE @ResultTable
SET PeriodLastDate=DATEADD(DAY,-1,PeriodLastDate)
WHERE PeriodID=(SELECT COUNT(PeriodID) FROM @ResultTable)-1
mais cela ne fonctionne toujours, comme dans ma fonction de certains enregistrements sont supprimés et je ne suis pas toujours d'avoir PeriodIDs incrémentée de 1.
OriginalL'auteur gotqn | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Martin Smith
Il n'y a pas assez de contexte de votre question pour donner une réponse balles. Basé sur votre solution de travail, plutôt que de chercher le comte chercher le max PeriodID? Aussi longtemps que la suite PeriodID sont d'une grande valeur, il doit travailler à obtenir le "dernier" enregistrement.
OriginalL'auteur Factor Mystic
Si vous avez une colonne unique (peut-être PeriodID?) dans chaque ligne que vous pourriez faire quelque chose comme ceci:
OriginalL'auteur Dave Jorgenson