“内部错误:已达到表达式服务限制.请在查询中查找可能复杂的表达式,并尝试简化它们.”
有没有人见过这个,找到了一个好的解决方法?
我设法解决了这个问题,主要是将我的SQL查询分成两部分,然后将第一个sql select查询写入临时表,第二部分,一个新的sql select语句从临时表中选择并使用了很多CROSS APPLY操作符来计算级联计算列.
这是第二部分看起来如何但我正在使用更多Cross Applys来生成计算的新列的示例:
Select * from #tempTable cross apply ( select HmmLowestSalePrice = round(((OurSellingPrice + 1.5) / 0.95) - (CompetitorsLowestSalePrice) + 0.08,2) ) as HmmLowestSalePrice cross apply ( select checkLowestSP = case when adjust = 'No Room' then 'No Room' when OrginalTestSalePrice >= CompetitorsLowestSalePrice then 'Minus' when OrginalTeslSalePrice < CompetitorsLowestSalePrice then 'Ok' end ) as checkLowestSP cross apply ( select AdjustFinalNewTestSP = case when FinalNewTestShipping < 0 Then NewTestSalePrice - (FinalNewTestShipping) when FinalNewTestShipping >= 0 Then NewTestSalePrice end ) as AdjustFinalNewTestSP cross apply ( select CheckFinalSalePriceWithWP = case when round(NewAdminSalePrice,2) >= round(wholePrice,2) then 'Ok' when round(NewAdminSalePrice,2) < round(wholePrice,2) then 'Check' end ) as CheckFinalPriceWithWP DROP TABLE #tempTable
我的目标是将其放入sql报告中,如果只有1个用户,它将正常工作,因为#tempTable将在同一执行中创建并删除,并且结果会正确显示在报告中.但是将来如果有并发用户我会担心他们会写同样的#tempTable会影响结果吗?
我已经看过将它放入存储过程但仍然得到上面的错误消息.