select worktype,
(case when worktype = 'cars'
then total + sum(case when worktype = 'variation' then total else 0 end) over ()
when worktype = 'planes'
then total - sum(case when worktype = 'variation' then total else 0 end) over ()
else total
end) as total
from t;
如果只有一排 'variation' ,也可以使用 join :
select t.worktype,
(case when t.worktype = 'cars'
then t.total + tv.total
when t.worktype = 'planes'
then t.total - tv.total
else t.total
end) as total
from t join
t tv
on tv.worktype = 'variation'
SELECT (PLANES - VARIATION) AS PLANES,
(CARS + VARIATION) AS CARS,
BIKES,
VARIATION
FROM (<YOUR MEGA QUERY WHICH MUST TO HAS [PLANES, CARS, BIKES, VARIATION]>)
2条答案
按热度按时间gt0wga4j1#
可以使用窗口函数:
如果只有一排
'variation'
,也可以使用join
:ajsxfq5m2#
不用看你的问题,我可以给你一个提示。
你喜欢:
也许您可以将其放入查询而不嵌套,但我看不到任何内容,我更希望在答案中确保。