У меня есть две таблицы с приведенным ниже примером вывода.tb1 находится во времени, а tb2 находится во времени ![enter image description here](https://i.stack.imgur.com/qbLe4.png)
Я хочу построить запрос для достижения следующих результатов с нулевыми значениями, если строка в tb2 не в tb2 или строка в tb1 нетв tb1:
мне нужно получить значение NULL, если OINDX в таблице2, а не в таблице1 или IINDX в таблице1, а не в таблице2, и если дата не в датах между двумя датами, получить пустую строку с датой только как на этой фотографии
![enter image description here](https://i.stack.imgur.com/qoxvi.png)
этот код для создания двух таблиц, чтобы попробовать код и помочь мне
CREATE TABLE [dbo].[TIMEIN](
[IINDX] [int] NULL,
[USERID] [int] NULL,
[Date] [date] NULL,
[CHECKTIME] [datetime] NULL,
[CHECKTYPE] [varchar](1) NULL
) ON [PRIMARY]
INSERT [dbo].[TIMEIN] VALUES (1, 60, CAST(N'2018-02-07' AS Date), CAST(N'2018-02-07T06:58:48.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (3, 60, CAST(N'2018-02-08' AS Date), CAST(N'2018-02-08T06:01:09.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (6, 60, CAST(N'2018-02-09' AS Date), CAST(N'2018-02-09T06:57:43.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (8, 60, CAST(N'2018-02-10' AS Date), CAST(N'2018-02-10T06:34:28.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (10, 60, CAST(N'2018-02-11' AS Date), CAST(N'2018-02-11T05:59:38.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (12, 60, CAST(N'2018-02-12' AS Date), CAST(N'2018-02-12T06:02:14.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (14, 60, CAST(N'2018-02-13' AS Date), CAST(N'2018-02-13T06:00:25.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (16, 60, CAST(N'2018-02-14' AS Date), CAST(N'2018-02-14T06:01:59.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (18, 60, CAST(N'2018-02-15' AS Date), CAST(N'2018-02-15T06:01:56.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (20, 60, CAST(N'2018-02-22' AS Date), CAST(N'2018-02-22T13:58:31.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (22, 60, CAST(N'2018-02-23' AS Date), CAST(N'2018-02-23T18:57:01.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (24, 60, CAST(N'2018-02-24' AS Date), CAST(N'2018-02-24T21:54:01.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (26, 60, CAST(N'2018-02-25' AS Date), CAST(N'2018-02-25T21:53:58.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (28, 60, CAST(N'2018-02-26' AS Date), CAST(N'2018-02-26T22:03:14.000' AS DateTime), N'I')
INSERT [dbo].[TIMEIN] VALUES (30, 60, CAST(N'2018-02-27' AS Date), CAST(N'2018-02-27T21:57:51.000' AS DateTime), N'I')
CREATE TABLE [dbo].[TIMEOUT](
[OINDX] [int] NULL,
[USERID] [int] NULL,
[Date] [date] NULL,
[CHECKTIME] [datetime] NULL,
[CHECKTYPE] [varchar](1) NULL
) ON [PRIMARY]
INSERT [dbo].[TIMEOUT] VALUES (1, 60, CAST(N'2018-02-07' AS Date), CAST(N'2018-02-07T15:59:32.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (3, 60, CAST(N'2018-02-08' AS Date), CAST(N'2018-02-08T15:00:32.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (4, 60, CAST(N'2018-02-08' AS Date), CAST(N'2018-02-08T15:00:34.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (6, 60, CAST(N'2018-02-09' AS Date), CAST(N'2018-02-09T19:00:03.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (8, 60, CAST(N'2018-02-10' AS Date), CAST(N'2018-02-10T15:31:16.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (10, 60, CAST(N'2018-02-11' AS Date), CAST(N'2018-02-11T15:01:47.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (12, 60, CAST(N'2018-02-12' AS Date), CAST(N'2018-02-12T15:03:06.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (14, 60, CAST(N'2018-02-13' AS Date), CAST(N'2018-02-13T15:01:40.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (16, 60, CAST(N'2018-02-14' AS Date), CAST(N'2018-02-14T15:00:34.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (18, 60, CAST(N'2018-02-15' AS Date), CAST(N'2018-02-15T15:02:55.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (20, 60, CAST(N'2018-02-22' AS Date), CAST(N'2018-02-22T22:20:42.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (22, 60, CAST(N'2018-02-24' AS Date), CAST(N'2018-02-24T06:03:39.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (24, 60, CAST(N'2018-02-25' AS Date), CAST(N'2018-02-25T07:04:37.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (26, 60, CAST(N'2018-02-26' AS Date), CAST(N'2018-02-26T07:00:16.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (28, 60, CAST(N'2018-02-27' AS Date), CAST(N'2018-02-27T07:04:08.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (30, 60, CAST(N'2018-02-27' AS Date), CAST(N'2018-02-27T21:58:48.000' AS DateTime), N'O')
INSERT [dbo].[TIMEOUT] VALUES (31, 60, CAST(N'2018-02-28' AS Date), CAST(N'2018-02-28T07:00:18.000' AS DateTime), N'O')
я использую этот код для получения дат списка между двумя датами
DECLARE @Date1 DATE = '2018-02-07'; DECLARE @Date2 DATE = '2018-02-28';
SELECT DATEADD(DAY,number,@Date1) [Date] FROM master..spt_values
WHERE type = 'P' AND DATEADD(DAY,number,@Date1) <= @Date2