Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用表变量计算聚合_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 使用表变量计算聚合

Sql server 使用表变量计算聚合,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我正在将一些存储过程从SQLServer2000更新到2008。在进行了必要的语法更改之后,除了一项在2000年按预期工作,但在2008年没有按预期工作之外,其他一切都很顺利。这是对我的问题的一个大大简化的可复制的陈述 我有一个包含以下数据的表格: 我使用以下存储过程提取数据并计算聚合计数: 这将产生以下结果: 使用SQL Server 2000时,total列中的条目为[2,1,1,1],这是预期的结果。我假设我在这里遗漏了一些非常明显的东西,但我似乎不能完全指出它。由于必须使用tabl

我正在将一些存储过程从SQLServer2000更新到2008。在进行了必要的语法更改之后,除了一项在2000年按预期工作,但在2008年没有按预期工作之外,其他一切都很顺利。这是对我的问题的一个大大简化的可复制的陈述

我有一个包含以下数据的表格:

我使用以下存储过程提取数据并计算聚合计数:

这将产生以下结果:


使用SQL Server 2000时,
total
列中的条目为[2,1,1,1],这是预期的结果。我假设我在这里遗漏了一些非常明显的东西,但我似乎不能完全指出它。

由于必须使用table变量,请按如下方式填充它:

INSERT INTO @tablevar (userid, foo, bar, total)
SELECT userid, foo, bar, count(1) as total
FROM Table_1
GROUP BY userid, foo, bar

由于必须使用table变量,请按如下方式填充:

INSERT INTO @tablevar (userid, foo, bar, total)
SELECT userid, foo, bar, count(1) as total
FROM Table_1
GROUP BY userid, foo, bar

UserID、Foo和Bar
来自哪里?(在update语句中)目的是使用表变量中的值(即,对于表变量中的每一行,使用UserID、Foo和Bar的相同值计算表1中的行数)。实际上,我试着完全限定条款的右边,结果是一样的。不确定这是否回答了您的问题-让我知道。
UserID、Foo和Bar
来自哪里?(在update语句中)目的是使用表变量中的值(即,对于表变量中的每一行,使用UserID、Foo和Bar的相同值计算表1中的行数)。实际上,我试着完全限定条款的右边,结果是一样的。不确定这是否回答了您的问题-让我知道。实际上,实际过程需要进行一系列更新,这确实需要使用表变量。我将更新这个问题来说明这一点。更新是为了反映对表变量的需要。实际上,实际过程需要进行一系列更新,这确实需要使用表变量。我将更新这个问题来提到这一点。更新以反映对表变量的需求。