Вставить данные из таблицы
У меня есть таблица, которая перечисляет количество комментариев с определенного сайта, как показано ниже:
Date Site Comments Total
---------------------------------------------------------------
2010-04-01 00:00:00.000 1 5 5
2010-04-01 00:00:00.000 2 8 13
2010-04-01 00:00:00.000 4 2 7
2010-04-01 00:00:00.000 7 13 13
2010-04-01 00:00:00.000 9 1 2
У меня есть другая таблица, в которой перечислены ВСЕ сайты, например, от 1 до 10
Site
-----
1
2
...
9
10
Используя следующий код, я могу узнать, на каких сайтах отсутствуют записи за предыдущий месяц:
SELECT s.site
from tbl_Sites s
EXCEPT
SELECT c.site
from tbl_Comments c
WHERE c.[Date] = DATEADD(mm, DATEDIFF(mm, 0, GetDate()) -1,0)
Производство:
site
-----
3
5
6
8
10
Я хотел бы иметь возможность вставить отсутствующие сайты, перечисленные в моем запросе, в таблицу комментариев с некоторыми значениями по умолчанию, т. Е. 0
Date Site Comments Total
---------------------------------------------------------------
2010-04-01 00:00:00.000 3 0 0
2010-04-01 00:00:00.000 5 0 0
2010-04-01 00:00:00.000 6 0 0
2010-04-01 00:00:00.000 8 0 0
2010-04-01 00:00:00.000 10 0 0
вопрос, как я обновил / вставил таблицу / значения?
веселит,
подветренный
2 ответа
Решение
INSERT INTO CommentTable (Date, Site, Comments, Total)
SELECT '2010-04-01 00:00:00.000', Site, 0, 0
FROM SiteTable
WHERE Site NOT IN
(SELECT DISTINCT Site FROM CommmentTable
WHERE [Date] = DATEADD(mm, DATEDIFF(mm, 0, GetDate()) -1,0))
Левое присоединение с сайта к вашему комментарию должно сделать работу, я думаю
По крайней мере, если бы я понял ваше намерение
РЕДАКТИРОВАТЬ: Sry думал, что вы хотите выбрать все сайты с этими комментариями