У меня есть следующие вложенных запросSQL Server: Дело Заявление Sum
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, мы хотим рассчитать все данные. и так далее. Как создать этот оператор case.
например, если программа MC, мы хотим суммировать c.seats (from 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)
Ваш вывод не совпадает с вашим запрос – TheGameiswar
Пара «ВНЕШНЕЙ ЧАСТИ APPLY» должна сделать трюк. Если вы хотите получить реальный код, вам потребуется больше информации о сценариях по каждому случаю. – TTeeple
Я обновил запрос, чтобы добавить полный оператор sql/update. Но проблема находится в средней части, где я хочу обновить сумму - к ряду случаев. Благодарю. – YelizavetaYR