В настоящее время я использую код, который устанавливает дату на основе номера строки. Я хотел бы использовать почтовый индекс, чтобы установить так, чтобы почтовый индекс был тем же самым, он использует первую дату в январе, когда он добирается до 30 января, он возвращается к использованию первой для следующей группы почтовых индексов.SQL Установите дату, когда почтовый индекс тот же
Данные должны выглядеть следующим образом:
CardNumber | PostCode | SchedServiceStart
34198 | GL53 | 01/01/2014
34199 | GL53 | 01/01/2014
35172 | GU4 | 02/01/2014
38764 | GU4 | 02/01/2014
83412 | GU4 | 02/01/2014
28171 | PL1 | 03/01/2014
28170 | PL1 | 03/01/2014
Вот код им с помощью в настоящее время, чтобы установить дату по номеру строки:
WITH CTE as
(SELECT CardNumber,
SchedServiceStart,
ROW_NUMBER() OVER (ORDER BY CardNumber) as rn
FROM tblContractSite
INNER JOIN tblContract ON tblContractSite.ContractRef = tblContract.ContractID
WHERE tblContractSite.SiteServiceTypeRef = 1)
UPDATE CTE
SET SchedServiceStart
=CAST('01/01/2014' as Datetime)+(rn-1)%30 -- 30 day period in jan from the 1st
Еще раз, очень просто! Большое спасибо –