2016-09-20 10 views
0

変数(last_weekなど)を計算し、それをメインデータセット(new_jなど)に追加しようとしています。私はnew_jに参加することができました。しかし、その変数(last_week)を今後の計算に使用したい場合、それを認識しません。私のコードは次のとおりです。新しい計算された変数をSQLのメインデータセットに追加する

SELECT [Weekkey] AS weekkey 
    ,[article/colour] as prod_id 
    ,[Current MP Department No/Desc] as prod_dept 
    ,[Total Stock] as total_stock 
INTO #new_j 
FROM [J_20160831] --(that’s the db in server and I created a temp db #new_j) 

SELECT prod_id, max(weekkey) as last_week 
into #lastweeksales 
FROM #new_j 
group by prod_id 

select * 
from #new_j 
left join #lastweeksales 
     on #lastweeksales.prod_id = #new_j.prod_id 

私はこのコードを実行すると、last_weekという列が表示されます。今私がしたいことはこれです:

select * 
,case 
     when last_week = max(weekkey) then total_stock 
     else 0 
end as last_stock_position 
from #new_j 

しかしlast_weekはnew_jに見つかりません。最後のコードでlast_weekの代わりに#lastweeksales.last_weekも試しましたが、どちらもしませんでした。ここで最善の方法は何ですか?さらに、代わりにそれを行うより良い方法はありますか?私が最後に持っている出力は、これらの変数を持つテーブルです:WeekKey、prod_dept、prod_id、total_stock、last_week、last_stock_position

ありがとうございます!それは非常に感謝しています。この

select * from #new_j left join #lastweeksales 
     on #lastweeksales.prod_id = #new_j.prod_id' 

newjとlastweekalesのすべての列を選択することにより、

答えて

0

加入のこの正常な動作..

が同じ順序で表示(最初new_j列と、その後の列をlastweeksales)されます。だから " last_weekはlastweeksalesの最後の列です。上記のクエリで

第二に、

select *, 
     case when last_week = max(weekkey) then total_stock 
      else 0 
     end as last_stock_position 
from #new_j 

、あなたは、テーブル#lastweeksalesに属している 'last_week' 列を選択しています。

カラムを選択するときは注意してください。私はあなたが期待して推測

select a.WeekKey, a.prod_dept, a.prod_id, a.total_stock, b.last_week, 
case 
    when b.last_week = max(a.weekkey) then total_stock 
    else 0 
end as last_stock_position 
from #new_j as a 
left join #lastweeksales as b 
on b.prod_id = a.prod_id 
group by a.weekkey,a.prod_dept,a.prod_id,a.total_stock,b.last_week 
+0

おかげ株式会社は、まさに私の質問のthats。 #lastweeksalesにあるlast_week列と#new_jにあるtotal_stock列を使用して新しい変数を計算するにはどうすればよいですか?両方に参加するとデータセットは結合されますが、それでも新しいデータセットとしては保存されません。そのように結合されたデータセットを新しいデータセットとして保存するにはどうすればよいですか? – Shraddha

+0

私は答えを更新しました。私はこれがヘルプであると思います。答えとしてマークしてください。 –

+0

ありがとうKK!しかし、これは私が探していた行にありますが、このエラーが発生しました。カラム '#new_j.weekkey'は、集約関数またはGROUP BY節に含まれていないため、選択リストでは無効です。 :/ – Shraddha

関連する問題