CROSS APPLY パラメーターを使用して SQL Server 2008 開発者データベースで正常に動作する次のスクリプトを作成しましたが、SQL Server 2000 データベースを使用していて SSMS の互換性設定を変更したくないクライアントでは動作しません。
CROSS APPLY パラメータを使用しないように、以下のスクリプトを変換する方法を誰かが提案できますか? ありがとう!
DECLARE @Flag INT
SET @Flag = 1
WHILE (@Flag < (SELECT TOP 1 (COUNT(CUSTOMERPN)) AS COUNTCUST FROM FC_Nestle
GROUP BY CustomerPN
ORDER BY COUNTCUST DESC))
BEGIN
--UPDATE AFS_TOPRODUCE COUNTS
UPDATE FC_Nestle
SET AFS_ToProduce = CustReqQty - AFS_OH
--UPDATE SUBSEQUENT AFS_OH INVENTORY COUNTS
update FC_Nestle
set AFS_OH = - fc2.AFS_ToProduce
from FC_Nestle
CROSS APPLY
(
select fc2.AFS_ToProduce
from
(
select top 1
fc2.AFS_ToProduce
from FC_Nestle fc2
where fc2.ForecastID < FC_Nestle.ForecastID and fc2.CustomerPN = FC_Nestle.CustomerPN
order by fc2.ForecastID desc
) fc2
where fc2.AFS_ToProduce < 0
) fc2
where FC_Nestle.AFS_ToProduce > 0
SET @Flag = @Flag + 1
END