Включая VersionNumber с записью - PullRequest
       1

Включая VersionNumber с записью

0 голосов
/ 16 октября 2019

У меня в настоящее время есть столбец номера версии в моей таблице, и все они установлены в один. Однако иногда учетные записи закрываются или открываются, а иногда они могут даже обновляться. Я хотел бы назначить номер версии для каждой новой версии учетной записи, что стало возможным благодаря AccountCreatedDate. Таким образом, каждый раз, когда учетная запись создается или обновляется, она предоставляет нам AccountCreatedDate. Таким образом, самая старая AccountCreatedDate должна получить номер версии 1, следующая должна получить номер 2 и так далее. Как это можно сделать, пожалуйста, предоставьте код, как это сделать. Я предоставил код, который группирует одни и те же учетные записи, так как у одной и той же учетной записи будет один и тот же TimeID, и я располагаю их в порядке возрастания. Как я могу дать им номера версий? Каждая запись имеет свое собственное значение идентификации, известное как InputRowID

    Select * from ods.SchedulePayment
    where TimeID IN(
       Select TimeID
       FROM ods.SchedulePayment
       GROUP BY TimeID
       HAVING COUNT(*) >1
   )ORDER BY TimeID, AccountCreatedDate

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Я думаю, что вы хотите row_nubmer():

select sp.*,
       row_number() over (partition by TimeID order by AccountCreatedDate) as version_number
from ods.SchedulePayment sp;

Если вы хотите update значение, то:

with toupdate as (
      select sp.*,
             row_number() over (partition by TimeID order by AccountCreatedDate) as new_version_number
      from ods.SchedulePayment sp
     )
update toupdate
    set version_number = new_version_number
    where version_number <> new_version_number or version_number is null;
0 голосов
/ 16 октября 2019

Row_number () - это то, что вы должны выбрать

  Select *, row_number() over (partition 
    by 
 Account order by accountcreationdate 
 asc) from ods.SchedulePayment
     where TimeID IN(
   Select TimeID
   FROM ods.SchedulePayment
   GROUP BY TimeID
   HAVING COUNT(*) >1
    )ORDER BY TimeID, 
   AccountCreatedDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...