0
我有一些来自多维数据集的数据。SQL case语句依赖于结果集中的其他行
我在这个顺序,在已经作为替代方一行,但我需要把它的数量差异桶。那它是否是一个替换决定的代码是在此间举行的最低水平(这是一个大的CTE内)(该立方体后面的代码是巨大和存在于多个层面)
CASE
WHEN ISNULL(PC.ItemDimCostPrice, SC.ItemDimCostPrice) = 1
AND (PC.ConfigId <> SC.ConfigId
OR PC.InventColorId <> SC.InventColorId
OR PC.InventSizeId <> SC.InventSizeId
OR PC.InventStyleId <> SC.InventStyleId)
THEN 1
--New code here ... THEN 0
WHEN PC.[Resource] IS NULL
OR SC.[Resource] IS NULL
THEN 1
ELSE 0
END AS [HasSubstitutionVariance] ,
,他们给出的逻辑我需要添加到这个基本上是如果成本分组是重要的(我知道如何计算),并存在具有相同costgroupid和operationid(在生产订单内)的另一个记录,那么这将永远不会是一个替代方差。我正在考虑使用rownumber,并在costgroupid和operationid上进行分区,但据我所知,您不能在case语句中使用窗口函数?任何人有任何想法我会如何做到这一点?谢谢!
做什么?这是完全不清楚你在说什么。 –
标记替换方差为0 – jhowe
没有读取整个问题,但在SQL中,当您想要执行CASE表达式时,该表达式涉及同一个表中不同行的值时,需要使用子查询或自身加入以获得其他行的值。 –