[英]Power BI Microsoft SQL: Incorrect syntax near ';'. Incorrect syntax near ')'
以下在 DataGrip 中运行良好。 但是,在 Power BI 中,我收到此错误并且不知道为什么:
Microsoft SQL:“;”附近的语法不正确。 ')' 附近的语法不正确。
它给了我另一个 CTE 错误,我必须在开始时添加分号,但我似乎无法弄清楚。 语法看起来不错。
;WITH pizzaorder AS (
SELECT DISTINCT [order].id
FROM [order]
LEFT JOIN order_line
ON order_line.order_id = [order].id
WHERE pizza_product_id IS NOT NULL
),
otherproductorder AS (
SELECT DISTINCT [order].id
FROM [order]
LEFT JOIN order_line ON order_line.order_id = [order].id
WHERE other_product_id IS NOT NULL
),
mostsold AS (
SELECT TOP 10 product_name,
SUM(quantity) AS quantity
FROM pizzaorder
INNER JOIN otherproductorder ON otherproductorder.id = pizzaorder.id
LEFT JOIN order_line ON order_line.order_id = pizzaorder.id
INNER JOIN product ON product.id = order_line.other_product_id
GROUP BY product_name
)
SELECT TOP 10 *
FROM mostsold
ORDER BY quantity DESC
在许多情况下,Power BI 会将您提供的查询与其他查询组合在一起,方法是将其包装在子查询中。 这不适用于 CTE。
因此,您可以使用该逻辑创建视图,或将 CTE 转换为 FROM 子句中的子查询。
但通常在将数据公开给 Power BI 之前,您不应该进行这种查询工作。 在 Power BI 中,您通常将每个表单独引入 Power BI 数据集中。
我设法按照 SMor 建议的方式重新开始解决了这个问题。
它仍然不完美,数据库有一些缺陷,但这是适合我情况的解决方案。
SELECT TOP 10 product_name, SUM(quantity) AS quantity
FROM (SELECT DISTINCT [order].id
FROM [order]
LEFT JOIN order_line ON order_line.order_id = [order].id
WHERE pizza_product_id IS NOT NULL) as pizzaorder
LEFT JOIN order_line ON order_line.order_id = pizzaorder.id
INNER JOIN product ON product.id = order_line.other_product_id
GROUP BY product_name
ORDER BY quantity DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.