双查询Sql表达式
我不确定这是否可以在crystal中实现,但现在它开始了 需要两个值来获取有关此报表的更多报表信息。首先是找到售出的单位。。。第二个是为报告找到合适的最终价格。。。我最初的想法是尝试将查询分配给SQL表达式中的一个变量,以获取第一个值并传递给第二个值。。。但它不喜欢我的变量双查询Sql表达式,sql,sql-server,crystal-reports,Sql,Sql Server,Crystal Reports,我不确定这是否可以在crystal中实现,但现在它开始了 需要两个值来获取有关此报表的更多报表信息。首先是找到售出的单位。。。第二个是为报告找到合适的最终价格。。。我最初的想法是尝试将查询分配给SQL表达式中的一个变量,以获取第一个值并传递给第二个值。。。但它不喜欢我的变量 CASE WHEN "Items"."ItemId" IS NULL THEN NULL ELSE LOCAL NumberVar totalSold :=(SELECT SUM([QuantitySold]) AS
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中工作正常,只需考虑如何将其迁移到表达式以显示最终价格(单个数字)
引擎正在处理局部变量声明。您可能希望使用子查询而不是变量。尝试一下这样的东西:
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
我不得不多玩一点,但这帮我找到了正确的方向。。。谢谢谢恩!很高兴这有帮助。。。当你把它完全分类后,你可能想用你的最终解决方案更新你的问题,以帮助下一个可怜的灵魂。