gpt4 book ai didi

sql-server - 根据另一个表的计数更新一个表

转载 作者:行者123 更新时间:2023-12-05 04:04:49 25 4
gpt4 key购买 nike

我正在尝试对另一个表中使用日期范围的表进行计数。计数还必须与引用编号匹配,这是数据格式:

[Rev Old New] (Table 1)
Id Start Finish Amount Calls
41 2018-01-01 2018-06-01 111.01

[Calls] (Table 2)
Id Date Amount
3 2018-05-05 12.1
41 2018-01-03 11.7
41 2018-06-11 12.9

我是 MS SQL 的新手,所以为我相当基础的知识道歉!

因此,我想要 [Calls] 中的行数,其中 Date 在 [Rev Old New] 中的 Start 和 Finish 日期之间,并且两个表中的 ID 相同(这是一个客户端引用)

我想在 [Calls] 中用这个值更新 [Rev Old New]

这是我目前所拥有的,无法正常工作并且可能离正确的语法还差得很远!

UPDATE [Insight].[dbo].[Rev Old New]. t2
SET [Calls] =
(SELECT COUNT(CASE WHERE t1.Date BETWEEN t2.[Start] AND t2.[Finish])
FROM [Insight].[dbo].[Calls] t1
WHERE t1.[Id] = t2.[Id])

我得到的错误是这样的:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 't2'.
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'WHERE'.

最佳答案

您不需要 CASE 语句,一个简单的 WHERE 就足够了:

UPDATE [Insight].[dbo].[Rev Old New]
SET [Rev Old New].[Calls] = (SELECT COUNT(*) FROM [Insight].[dbo].[Calls] t1
WHERE t1.Date BETWEEN [Rev Old New].[Start] AND [Rev Old New].[Finish])

关于sql-server - 根据另一个表的计数更新一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com