Sql 使用where子句中的内部联接、计数和日期变量更新表

Sql 使用where子句中的内部联接、计数和日期变量更新表,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在尝试使用基于另一个表的信息更新一个表 我有一个来自客户机的响应表,指示他们是否使用“Y”或“N”的布尔varchar完成了请求 因为我想汇总回复的数量,查看回复的百分比,并每周跟踪它们,所以我开发了以下查询 declare @week1S DATE set @week1S = '07/01/2016' declare @week1E DATE set @week1E = ' 07/07/2016' Update ArbitrageResponse Set b.arbcount_1 = CO

我正在尝试使用基于另一个表的信息更新一个表

我有一个来自客户机的响应表,指示他们是否使用“Y”或“N”的布尔varchar完成了请求

因为我想汇总回复的数量,查看回复的百分比,并每周跟踪它们,所以我开发了以下查询

declare @week1S DATE
set @week1S = '07/01/2016'
declare @week1E DATE
set @week1E = ' 07/07/2016'
Update ArbitrageResponse
Set b.arbcount_1 = COUNT(a.ARB_accomplished)
from arbimport as a
Inner Join ArbitrageResponse as b
WHERE a.Requested_date>=@week1S and a.Requested_date<=@week1E
Group by a.dispatch_group_name

我在where子句上出错了

当您尝试使用内部联接而不使用ON子句时,问题就开始了。 请尝试以下语句:

declare @week1S DATE = '07/01/2016';
declare @week1E DATE = ' 07/07/2016';
WITH A as (
    SELECT COUNT(ARB_accomplished) as ARB_accomplished_CNT 
    FROM arbimport
    WHERE Requested_date>=@week1S and Requested_date<=@week1E
    GROUP BY dispatch_group_name
    )
Update ArbitrageResponse
Set arbcount_1 = (SELECT ARB_accomplished_CNT FROM A)

然而,它可能不会给你你需要的结果,但至少它给了你一个想法。

如果你想成为一名程序员,你需要克服错误盲症。读取错误。试着去理解它。如果您需要寻求帮助,则错误文本很重要。此外,请选择一个RDBMS。是mysql还是sql server?不要只是添加随机标记来吸引更多的人查看它。我删除了不兼容的数据库标记。请随意为您真正使用的数据库添加标记。