Insertar datos de una tabla
-
25-09-2019 - |
Pregunta
Tengo una tabla que enumera varios comentarios de un sitio en particular como la siguiente:
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
Tengo otra tabla que enumera todos los sitios, por ejemplo, de 1 a 10
Site
-----
1
2
...
9
10
Utilizando el código siguiente que puedo averiguar qué sitios faltan las entradas del mes anterior:
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)
La producción de:
site
-----
3
5
6
8
10
Me gustaría ser capaz de insertar los sitios que faltan que se enumeran de mi consulta en la tabla de comentarios con algunos valores por defecto, es decir 'de 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
La pregunta es, ¿cómo he actualizar / insertar la tabla / valores?
aplausos,
Lee
Solución
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))
Otros consejos
Una combinación izquierda de un sitio a su commenttable debe hacer el trabajo que supongo
Al menos si lo hiciera Unterstand su intención
EDIT: Sry pensó ¿Quieres seleccionar todos los sitios con esos comentarios