powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вставка данных
6 сообщений из 6, страница 1 из 1
Вставка данных
    #39840324
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, доброе утро.
Прошу подсказать, почему так происходит.

Есть таблица:[email].[_SERVICE].[Max_date_From_vClosedDay5nt]
date balanceID InDateTime
2019-07-15 00:00:00.000 2140 2019-07-16 12:31:50.443
2019-07-16 00:00:00.000 2140 2019-07-17 13:46:50.453
2019-07-16 00:00:00.000 2140 2019-07-17 13:36:15.750
2019-07-16 00:00:00.000 2140 2019-07-17 13:29:24.380
2019-07-17 00:00:00.000 2140 2019-07-18 12:18:32.850
2019-07-18 00:00:00.000 2140 2019-07-19 13:31:08.047
2019-07-19 00:00:00.000 2140 2019-07-20 13:35:08.047
2019-07-20 00:00:00.000 2140 2019-07-21 13:31:08.047

Добавим в нее столбец begin_date

date balanceID InDateTime begin_date
2019-07-15 00:00:00.000 2140 2019-07-16 12:31:50.443 NULL
2019-07-16 00:00:00.000 2140 2019-07-17 13:46:50.453 NULL
2019-07-16 00:00:00.000 2140 2019-07-17 13:36:15.750 NULL
2019-07-16 00:00:00.000 2140 2019-07-17 13:29:24.380 NULL
2019-07-17 00:00:00.000 2140 2019-07-18 12:18:32.850 NULL
2019-07-18 00:00:00.000 2140 2019-07-19 13:31:08.047 NULL
2019-07-19 00:00:00.000 2140 2019-07-20 13:35:08.047 NULL
2019-07-20 00:00:00.000 2140 2019-07-21 13:31:08.047 NULL


столбец begin_date берется из таблицы increment

RepDate begin_date
2019-07-15 00:00:00.000 2019-07-16 12:35:39.200
2019-07-15 00:00:00.000 2019-07-16 13:11:21.453
2019-07-16 00:00:00.000 2019-07-17 13:31:27.850
2019-07-16 00:00:00.000 2019-07-17 13:45:38.850
2019-07-16 00:00:00.000 2019-07-17 13:46:10.850
2019-07-16 00:00:00.000 2019-07-17 13:48:35.850
2019-07-17 00:00:00.000 2019-07-18 12:20:23.047
2019-07-18 00:00:00.000 2019-07-19 13:32:01.047
2019-07-19 00:00:00.000 2019-07-20 13:36:01.047
2019-07-20 00:00:00.000 2019-07-21 13:37:01.047

Создадим процедуру, которая брала бы begin_Date из таблицы increment и вставляла бы в таблицу [email].[_SERVICE].[Max_date_From_vClosedDay5nt]:

ALTER PROCEDURE [spGet_Max_Date_From_increment]
AS
BEGIN

DECLARE @d AS datetime
SET @d = (SELECT MAX(RepDate) FROM [increment])

INSERT INTO [email].[_SERVICE].[Max_date_From_vClosedDay5nt]
(
begin_date
)
SELECT t1.begin_date

FROM [increment] t1
LEFT JOIN [email].[_SERVICE].[Max_date_From_vClosedDay5nt] t2 ON t1.repdate = t2.date
WHERE t2.date = @d AND t2.begin_date IS NULL
END
GO

При попытке запуска получаю следующее сообщение:
Msg 515, Level 16, State 2, Procedure _SERVICE.spGet_Max_Date_From_increment, Line 8 [Batch Start Line 10]
Cannot insert the value NULL into column 'date', table 'email._SERVICE.Max_date_From_vClosedDay5nt'; column does not allow nulls. INSERT fails.

причем тут спрашивается столбец DATE, когда я ничего туда не пытаюсь вставить.

SELECT же выдает:
begin_date
2019-07-21 13:37:01.047
то есть как раз то, что мне нужно.

DECLARE @d AS datetime
SET @d = (SELECT MAX(RepDate) FROM [increment])
SELECT t1.begin_date

FROM [increment] t1
LEFT JOIN [email].[_SERVICE].[Max_date_From_vClosedDay5nt] t2 ON t1.repdate = t2.date
WHERE t2.date = @d AND t2.begin_date IS NULL

Заранее благодарю Вас за направлению в нужное русло.
...
Рейтинг: 0 / 0
Вставка данных
    #39840326
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaнаправлению в нужное русло.Update тебе нужен, а не INSERT
...
Рейтинг: 0 / 0
Вставка данных
    #39840327
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtdermamaнаправлению в нужное русло.Update тебе нужен, а не INSERT

))Да уж, век живи век учись, спасибо.
...
Рейтинг: 0 / 0
Вставка данных
    #39840334
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamacourtпропущено...
Update тебе нужен, а не INSERT))Да уж, век живи век учись, спасибо.И LEFT JOIN в вашем скрипте не имеет никакого смысла.

P.S. Вы не видите ничего особенного в том, что накладываете ограничения на правую таблицу LEFT JOIN
без учёта NULL?
...
Рейтинг: 0 / 0
Вставка данных
    #39840368
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapdermamaпропущено...
))Да уж, век живи век учись, спасибо.И LEFT JOIN в вашем скрипте не имеет никакого смысла.

P.S. Вы не видите ничего особенного в том, что накладываете ограничения на правую таблицу LEFT JOIN
без учёта NULL?

Спасибо, теперь вижу
...
Рейтинг: 0 / 0
Вставка данных
    #39840381
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapdermamaпропущено...
))Да уж, век живи век учись, спасибо.И LEFT JOIN в вашем скрипте не имеет никакого смысла.

P.S. Вы не видите ничего особенного в том, что накладываете ограничения на правую таблицу LEFT JOIN
без учёта NULL?

хотя, секунду, поясните, пожалуйста, в чем мой недочет?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вставка данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]