У меня есть таблица, к которой мне нужно присоединиться, используя столбец ZIP, к другой таблице, чтобы создать представление.
--table 1
CREATE TABLE [dbo].[ZIP](
[ZIP] [varchar](5) NOT NULL,
[BEG] [datetime] NOT NULL,
[END] [datetime] NOT NULL,
CONSTRAINT [PK_ZIP] PRIMARY KEY CLUSTERED
(
[ZIP] ASC,
[BEG] ASC
)) ON [PRIMARY]
insert into ZIP select '64112', '01/01/2012', '12/31/2045'
insert into ZIP select '64113', '01/01/2012', '12/31/2045'
insert into ZIP select '64114', '01/01/2012', '12/31/2045'
--table 2
CREATE TABLE [dbo].[ZIPCODE](
[ZIP] [varchar](5) NOT NULL,
[STATUS] [varchar](12) NULL,
CONSTRAINT [PK_ZIPCODE] PRIMARY KEY CLUSTERED
(
[ZIP] ASC
)) ON [PRIMARY]
insert into ZIP select '64112', 'BMMNNNNNNNNN'
insert into ZIP select '64113', 'BMNNNNNNNNNB'
insert into ZIP select '64114', 'BMPNNNNNNNNP'
Записи в таблице 1 проходят через несколько лет, поэтому я хочу разбить ее на диапазоны календарных лет, как показано ниже, и если сегодняшняя дата попадает в определенный диапазон дат, тогда дата END должна быть «31/12/2045».
'64112', '01/01/2012', '12/31/2012'
'64112', '01/01/2013', '12/31/2013'
'64112', '01/01/2014', '12/31/2014'
'64112', '01/01/2015', '12/31/2045'
Таблица 2. Столбец СТАТУС «NNNNNNNNNNNN»
Столбец СТАТУС таблицы 2 настроен таким образом, что каждая позиция ссылается на CY. Первая позиция — 2004, вторая — 2005, третья — 2006 и т. д. ......, двенадцатая — 2015 в приведенной выше строке, и каждая позиция может иметь одно из 4 значений N, B, P или M.
Представление, которое я хочу создать, должно извлекать записи, как показано ниже.
'64112', '01/01/2012', '12/31/2012', N
'64112', '01/01/2013', '12/31/2013', N
'64112', '01/01/2014', '12/31/2014', N
'64112', '01/01/2015', '12/31/2045', N
Спасибо за помощь