2016-05-02 15 views
0

以下はクエリの一部です。私がこれを除いて実行しているなら、私は適切な出力を得ています。 しかし、私はこのクエリを含めていた場合、私は取得していますエラー:列名が「CTE_DATE」の1列目に指定されなかったコードの実行中にエラーが発生する

メッセージ8155、レベル16、状態2、手順SP_CUR_LEAR、ライン294 。

また、日付ギャップのないテーブル#lear1にデータを挿入する必要があります。

;WITH CTE_DATE AS ( 
    SELECT @start_date 
    UNION ALL 
    SELECT @start_date + 1 
    FROM CTE_DATE 
    WHERE @start_date <= @End_Date 
), 
CTE AS 
(
Select CTE_DATE.St_Date eff_date 
From CTE_Date 
), 
C (eff_date, partnumber, total_price) as 
(select CTE.eff_date, PARTNUMBER, ISNULL(X.cnt,(Select Z.cnt 
      From (Select AA.Totalprice cnt, Rank() Over(Order By AA.eff_date asc) RN 
             From #LEAR AA 
             Where AA.eff_date < CTE.eff_date OR AA.eff_date = CTE.eff_date 
                      ) Z 
                     Where Z.RN = 1)) 
from CTE 
Left Outer Join (Select eff_date, partnumber, totalprice cnt From #lear) X ON X.eff_date = CTE.eff_date  
) 

insert into #lear1 (eff_date, partnumber, totalprice) 
select eff_date, partnumber, total_price from c 

答えて

0

CTE_DATEのエイリアス名がありませんでした。 @start_dateにエイリアス名St_Dateを追加し、他の場所で同じ名前を処理すると問題が解決されます。場合

あなたは日+ 1追加したい場合、あなたは上記の答えは作品で確認できDATEADD

;WITH CTE_DATE AS ( 
    SELECT @start_date AS St_Date 
    UNION ALL 
    SELECT DATEADD(DAY, +1, St_Date) AS St_Date 
    FROM CTE_DATE 
    WHERE St_Date <= @End_Date 
), 
CTE AS 
(
Select CTE_DATE.St_Date eff_date 
From CTE_Date 
), 
C (eff_date, partnumber, total_price) as 
.... 
.... 
+0

@Rainsを使用することができますか?そうでない場合は、正しい解決策を追加/変更することができます。 – Arulkumar

関連する問題