我有一个在SQL Server Management Studio上运行良好的查询,除了将int无缘无故地转换为浮点数(我不确定那是否重要)。当我尝试在Visual Studio 2012中运行它时,它会在计算字段中引发有关聚合函数的错误。
我在查询中尝试了多种变体,但事实是它在一个地方起作用,而现在当他们两个都使用同一个数据库时又变成另一个地方了。
SELECT
v1.pk,
v1.description,
SUM(v1.quantity)
FROM v1
INNER JOIN v2 ON v1.v1_fk = v2.pk
WHERE v1.v1_fk = 5 AND
v1.date >= @date AND
v2.foo = 1 AND
v1.bar LIKE '%1%'
GROUP BY v1.pk, v1.description
HAVING SUM(v1.quantity) <= @num
ORDER BY pk
这在SQL Server Management Studio中工作正常。在Visual Studio中,它引发“无效的报表定义。计算字段'数量'的表达式包括聚合,行号,运行值,上一个或查找函数。这些不能在计算字段表达式中使用。