1

次のような特定のサイトからのコメント数をリストした表があります。

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

問題は、テーブル/値をどのように更新/挿入したかです。

乾杯、

リー

4

2 に答える 2

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))
于 2010-05-10T15:30:12.293 に答える
0

サイトからコメントテーブルへの左結合は、私が推測する仕事をするはずです

せめて君の意図が理解できたなら

編集:Sryは、これらのコメントを持つすべてのサイトを選択したいと考えました

于 2010-05-10T15:25:19.083 に答える