我不确定这是否可以在水晶内完成,但现在就可以了。
获取此报告的更多报告信息需要两个值。首先是找到销售的单位......第二个是找到适当的报告最终价格......我最初的想法是尝试将查询分配给SQL表达式中的变量,以获得第一个值以便传递给第二......但它并不喜欢我的变量。
CASE WHEN "Items"."ItemId" IS NULL THEN NULL
ELSE
LOCAL NumberVar totalSold :=(SELECT SUM([QuantitySold]) AS TotalSold
FROM Skus
WHERE Skus.ItemId = "Items"."ItemId"
AND Skus.SkuEnabled = 1);
SELECT TOP 1 Price
FROM [MYDB].[dbo].[PriceTables] p
WHERE p.UnitsSoldBreak >= totalSold
AND p.ItemId = "Items"."ItemId"
ORDER BY p.UnitsSoldBreak asc
END
基本上,一个项目有多个最终的定价级别,这些查询允许我根据销售的数量来查看最终价格。查询在SQL Management Studio中工作正常,只需要计算如何将其迁移到表达式以显示最终价格(单个数字)。
引擎在Local变量声明中咳嗽。
答案 0 :(得分:2)
您可能希望使用子查询而不是变量。尝试这样的东西:
CASE WHEN "Items"."ItemId" IS NULL THEN NULL
ELSE
SELECT TOP 1 Price
FROM [MYDB].[dbo].[PriceTables] p
WHERE p.UnitsSoldBreak >= ( SELECT SUM([QuantitySold])
FROM Skus
WHERE Skus.ItemId = "Items"."ItemId"
AND Skus.SkuEnabled = 1)
AND p.ItemId = "Items"."ItemId"
ORDER BY p.UnitsSoldBreak asc
END