【问题标题】:Insert data from to a table从表中插入数据
【发布时间】:2010-05-10 15:20:46
【问题描述】:

我有一个表格,其中列出了来自特定站点的 cmets 数量,如下所示:

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

我希望能够将我的查询中列出的缺失站点插入到带有一些默认值的 cmets 表中,即 '0's

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

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

干杯,

【问题讨论】:

    标签: sql select loops sql-update sql-insert


    【解决方案1】:
    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))
    

    【讨论】:

      【解决方案2】:

      我猜从站点到您的评论表的左连接应该可以完成工作

      至少如果我确实理解你的意图

      编辑:Sry 认为您想选择所有带有这些 cmets 的站点

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-21
        相关资源
        最近更新 更多