我想計算一個變量(比如說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。我也嘗試了#lastweeksales.last_week,而不僅僅是last_week在最後一段代碼中,但它也沒有。這裏最好的辦法是什麼?而且,有沒有更好的方法來代替它?我期待在最後得到的輸出是一個包含以下變量的表:WeekKey,prod_dept,prod_id,total_stock,last_week,last_stock_position
感謝您的幫助!非常感謝。
感謝KK,那正是我的問題。如何使用來自#new_j的#lastweeksales和total_stock列中的last_week列來計算新變量。儘管加入這兩個數據集都會加入數據集,但仍不會將其作爲新數據集存儲 - 因此,如何將該組合數據集存儲爲新數據集? – Shraddha
我已經更新了答案,我想這是有幫助的。請將此標記爲答案。 –
謝謝KK!這符合我所尋找的內容,但是,出現此錯誤 - 列'#new_j.weekkey'在選擇列表中無效,因爲它不包含在聚合函數或GROUP BY子句中。 :/ – Shraddha