moe*_*moe 5 sql t-sql sql-server-2008
我正在尝试更新一个tabel,其中field的值等于select语句的结果.我有这样一张桌子:
Type Total#
A 4
B 8
C 1
Run Code Online (Sandbox Code Playgroud)
我想根据select语句的结果更新上面的表.这是我的代码:
update MainTable
set [Total#] =
(SELECT count(distinct r.[ID])as Type
FROM dbo.TableA r left join
dbo.TableB a
on r.Post_ID = a.Post_ID
where a.Status is null)
Run Code Online (Sandbox Code Playgroud)
如果我按原样运行代码,它将更新所有行但我只想更新select语句中的Type与我的MainTable中的Type相等.谢谢
试一试,
UPDATE x
SET x.[Total#] = y.totalCount
FROM MainTable x
INNER JOIN
(
SELECT [Type], COUNT(DISTINCT r.[ID]) totalCount
FROM dbo.TableA r
LEFT JOIN dbo.TableB a
ON r.Post_ID = a.Post_ID
WHERE a.STATUS IS NULL
GROUP BY [Type]
) y ON x.[Type] = y.[Type]
Run Code Online (Sandbox Code Playgroud)
PS:在问这样的问题时,请添加表的结构.它有很大帮助.
| 归档时间: |
|
| 查看次数: |
21146 次 |
| 最近记录: |