0
由于SSRS不允许在聚合上使用过滤器,因此我发现了一些代码,这些代码帮助我提出了下面的查询。然而,当我运行它,我得到:如何调试“每个GROUP BY表达式必须包含至少一列不是外部引用错误”
每个GROUP BY表达式必须至少包含一列不是外部引用
我已经找遍,但无法找到如何解决此问题。我甚至从查询中删除了两个额外的表,所以根本没有联接。我需要不返回任何顺序,其中总订单上的线是低于500 $和大于0
SELECT
tdsls041_sales_order_lines.company,
tdsls041_sales_order_lines.order_number,
tdsls041_sales_order_lines.amount,
tdsls041_sales_order_lines.item,
tdsls041_sales_order_lines.container
FROM
tdsls041_sales_order_lines AS tdsls041_sales_order_lines
WHERE
(tdsls041_sales_order_lines.company = 610) AND
(tdsls041_sales_order_lines.order_number IN
(SELECT
tdsls041_sales_order_lines.order_number
FROM
tdsls041_sales_order_lines AS tdsls041_sales_order_lines_1
GROUP BY
tdsls041_sales_order_lines.order_number
HAVING
(SUM(tdsls041_sales_order_lines.amount) <= 500) OR
SUM(tdsls041_sales_order_lines.amount) > 0))
感谢您的回答,但是当我尝试时,它也给我一个错误。它表示每个按表达式组必须至少包含一个不是外部引用的列,但它还表示只有当子查询未与exists一起引入时,才可以在选择列表中指定一个表达式。 – KSharp
我将IN更改为EXISTS,但仍然收到外部参考错误。 – KSharp
我错过了当我运行子查询时发生更改的事实,所以我修复了该部分,现在查询没有错误地运行。但是,它并没有过滤掉我需要的东西。我得到的订单超过500美元。这是我现在的where子句。 – KSharp