我有两张桌子 1)每周点击 2)每月点击次数
每个星期一个月,每月点击中的一列将使用每周点击表中的数据自行增加。
每周点击表的信息如下所示:
Name Date TypeofHit Location
Jeff 10-10-12 Bunt New York
Sally 10-12-12 Bunt Wyoming
Joe 10-12-12 Hit Texas
Mark 10-14-12 Hit Ohio
James 10-15-12 Miss California
每月表的结构如下。
TypeofHit TCount
Bunt 2
Hit 2
Miss 1
我想要做的是将每周表格中的总TypeofHits添加到每月表
中SELECT COUNT(*) From WEEKLY GROUP BY TypeofHit
上面给出了我需要添加到Monthly表中的数字,但是我在使用Update语句进行正确格式化时遇到了问题。我试过了
UPDATE Monthly SET TCount + (SELECT Count(*) from Weekly GROUP BY TypeofHit) WHERE Monthly.TypeofHit = Weekly.TypeofHit
我正在使用MSSMS
答案 0 :(得分:0)
您需要JOIN
两个表:
UPDATE M
SET M.TCount = M.TCount + W.TCount
FROM Monthly M
INNER JOIN (SELECT TypeofHit,
COUNT(*) TCount
FROM Weekly
GROUP BY TypeofHit) W
ON M.TypeofHit = W.TypeofHit
而且,顺便说一下,我错过了月度表上的日期,你需要确保按照这一列加入它们,这样才有意义。
答案 1 :(得分:0)
我认为您正在寻找更新月度表的更新声明,然后您可以使用以下
UPDATE M
SET M.TCount = M.TCount + A.TypeCount
FROM Monthly M
JOIN (
select count(1) TypeCount, TypeofHit from Weekly GROUP BY TypeofHit
) A
on A.TypeofHit = M.TypeofHit
答案 2 :(得分:0)
尝试使用此查询(此处为 EXAMPLE),这非常有效:
WITH tempTable1 AS
(
SELECT TypeofHit, COUNT(*) as c FROM Weekly
GROUP BY TypeofHit
)
UPDATE Monthly
SET Monthly.TCount = Monthly.TCount + T2.c
FROM Monthly
INNER JOIN tempTable1 T2 ON Monthly.TypeofHit = T2.TypeofHit
答案 3 :(得分:0)
UPDATE a
SET a.TCount = a.TCount + b.TCount
FROM Monthly a,( select TypeofHit, count(*) TCount
from WEEKLY
GROUP BY TypeofHit
) b
WHERE a.TypeofHit = b.TypeofHit