已关闭。此问题需要更多的focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
17天前关闭。
Improve this question
假设我有如下所示的表结构。当动物数量相等时,我可以使用哪个SQL脚本来更新表中的Size2
列,并将其更新为Size
列的总和?平台是SQL Server。
我想有一列Size2
,它是当动物名称彼此相等时Size
的和。我很难把下面的脚本放到一个update语句中,但请参见select语句。
CREATE TABLE table1
(
Size nvarchar(50),
Animals nvarchar(250),
Part int,
Size2 nvarchar(250)
);
| 尺寸大小|动物|部件|
| - -|- -|- -|
| 30个|Pig|一个|
| 六十个|老虎|一个|
| 10个|老虎|2个|
| 30个|Pig|2个|
| 九十|狮子|一个|
| 20个|狮子|2个|
| 10个|狮子|三个|
这是所需的输出,我在表中还没有Size 2列。
| 尺寸大小|动物|部件|大小2|
| - -|- -|- -|- -|
| 30个|Pig|一个|六十个|
| 六十个|老虎|一个|七十个|
| 10个|老虎|2个|七十个|
| 30个|Pig|2个|六十个|
| 九十|狮子|一个|一百二十个|
| 20个|狮子|2个|一百二十个|
| 10个|狮子|三个|一百二十个|
到目前为止我已经:
SELECT
Animals,
SUM(TRY_CONVERT(int, Size))
FROM
Table1
WHERE
Part IS NOT NULL
GROUP BY
Animals
3条答案
按热度按时间hwazgwia1#
对于select语句,可以使用PARTITION BY子句
这是select语句
For update语句
注意:上面的UPDATE语句将只更新部分不为空的size2列。
如果要更新所有size2列(即使part为空),则删除最后一行(table1.part = table2.part)即可
dxpyg8gm2#
可以通过以下SQL语句获得所需的结果
因此可以使用上面的查询语句轻松地对
update
进行更新。slhcrj9b3#
通过查询,您可以使用以下内容进行更新