Если у вас есть оператор выбора ниже, где PK является первичным ключом:
select distinct dbo.DateAsInt( dateEntered) * 100 as PK,
recordDescription as Data
from MyTable
и вывод выглядит примерно так (первые цифры разделены для ясности):
PK Data
2010 01 01 00 New Years Day
2010 01 01 00 Make Resolutions
2010 01 01 00 Return Gifts
2010 02 14 00 Valentines day
2010 02 14 00 Buy flowers
и вы хотите вывести что-то вроде этого:
PK Data
2010 01 01 01 New Years Day
2010 01 01 02 Make Resolutions
2010 01 01 03 Return Gifts
2010 02 14 01 Valentines day
2010 02 14 02 Buy flowers
Можно ли заставить "00" в ПК иметь эффект "идентификационного номера" в течение одного выбора? Иначе, как вы можете увеличить число на 1 для каждого найденного действия на эту дату?
Я уже думаю, когда набираю текст, чтобы попробовать что-то вроде Sum (случай, когда 1 затем заканчивается) с группой по.
Редактировать: (Ответ предоставлен JohnFX ниже)
Это был окончательный ответ:
select PK + row_number() over
(PARTITION BY eventid order by eventname) as PK,
recordDescription
from (select distinct -- Removes row counts of excluded rows)
dbo.DateAsInt( dateEntered) as PK,
recordDescription as Data
from MyTable) A
order by eventid, recordDescription