我有以下嵌套查询。
它返回类似于以下输出的结果:
每个程序都有不同的逻辑 -- 所以如果我想计算参与者,但当程序是MC时,我们只想返回/汇总某些数据,但当程序是LU时,我们想要计算所有数据。等等。
我该如何构建这种情况语句。
例如,如果程序是MC,我们希望汇总c.seats(来自lt_data),但仅在价格= 800时。但如果程序是LU,我们要对所有价格进行座位汇总。如果程序是PD,我们想要汇总价格为800、500和300的位置。类似的事情。这是一个案例的基础,但我不确定如何构造它。
谢谢您提前的帮助。
以下是完整的查询。
select
sum(c.seats) as countPerfs, b.program, b.Prog_id
from
#LT_TEMP TableP
join
C_PROGRAM b on TableP.program_id = b.Prog_id
join
lt_data c on b.Program = c.program
join
LTR_BUDGET_REF a on TableP.program_id = a.ProgramID
where
a.Participants = 'Y'
and fyear = 2016
group by
b.Program, b.Prog_id
它返回类似于以下输出的结果:
program_id season program performance workshops artists_sess participants audience
6 2016 LU: NULL NULL NULL NULL NULL
7 2016 NC: NULL NULL NULL NULL NULL
11 2016 AC: NULL NULL NULL NULL NULL
12 2016 PD: NULL NULL NULL NULL NULL
19 2016 MC: NULL NULL NULL NULL NULL
每个程序都有不同的逻辑 -- 所以如果我想计算参与者,但当程序是MC时,我们只想返回/汇总某些数据,但当程序是LU时,我们想要计算所有数据。等等。
我该如何构建这种情况语句。
例如,如果程序是MC,我们希望汇总c.seats(来自lt_data),但仅在价格= 800时。但如果程序是LU,我们要对所有价格进行座位汇总。如果程序是PD,我们想要汇总价格为800、500和300的位置。类似的事情。这是一个案例的基础,但我不确定如何构造它。
谢谢您提前的帮助。
以下是完整的查询。
UPDATE
#LT_TEMP
SET
program = h.Program,
participants = h.countPerfs
FROM
(
select sum(c.seats) as countPerfs, b.program, b.Prog_id
from #LT_TEMP TableP
join C_PROGRAM b on TableP.program_id = b.Prog_id
join lt_data c on b.Program = c.program
join LTR_BUDGET_REF a on TableP.program_id = a.ProgramID
where a.Participants = 'Y'
and fyear = 2016
group by b.Program, b.Prog_id
) h
where h.Prog_id = #LT_TEMP.program_id
and h.Prog_id not in (27, 28, 29)