我有一个表,从类似下面的特定网站的评论的列表号:

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

的问题是,如何没有我更新/插入表/值?

欢呼声,

有帮助吗?

解决方案

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))

其他提示

左从网站加入到你的commenttable应该做我猜

工作

至少如果我做了unterstand你的意图

编辑:Sry基因还以为你想选择所有站点,这些意见

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top