我有这段代码,它将给定订单和季节的价格提高了perf_type/zone_no
。
在我的原始代码中,我将@season_no
作为局部单个变量。这神奇地工作。
UPDATE p
SET price = x.Price
FROM #Prices p
with
CROSS APPLY
(
SELECT *
FROM dbo.LFT_GET_PRICES_Seasonal(@season_no, order_dt) udf
WHERE udf.perf_type = p.perf_type AND udf.zone_no = p.zone_no
) x
现在,我们正在尝试修改代码以在多个季节使用。我们的代码前面有这段代码。
select season_no from @season_table
我不确定如何合并两者。
with season_alias as (select season_no from @season_table)
但是我不知道如何合并两者。如何将@season_table
中与每个订单相对应的唯一的season_no传递给交叉应用函数。我可以那样做吗?
我需要做的是用@season_no
中的select语句替换@season_table
独立的单个局部变量,我不确定该怎么做。
我无法调整功能,不适用于该项目
答案 0 :(得分:0)
您没有提供足够具体的信息,但是我可以告诉您,您通常可以使用相关子查询来替换它:
FROM dbo.LFT_GET_PRICES_Seasonal(@season_no, order_dt) udf
具有这样的内容:
FROM dbo.LFT_GET_PRICES_Seasonal((SELECT TOP 1 season_no FROM @season_table WHERE something=somethingelse), order_dt) udf