我想计算一个变量(比如说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