Попытка SQL после долгого времени.Нужна помощь в решении этой задачи.Я создал процедуру для обновления значений столбца от строки 1 до N на основе других комбинаций столбцов.В настоящее время заполняются другие столбцы, и вычисляемый столбец имеет значение null
Пример:
Account Category Metric Count Calculated Cloumn 5
A 1 ABC 45
A 1 DEF 25
A 1 XYZ
B 5 ABC 29
B 5 DEF
В приведенной выше таблице «Вычисленный столбец 5» - это поле в поле «Фокус», которое должно быть рассчитано с использованием комбинации первых 4.поля,
ex:
if Account=a ,Category=1 and metric -abc,def,xyz then
sum(count) Group by Account and Category
Разные логики для разных комбинаций.
Сейчас я использую скрипт процедуры ниже:
SET @variable1 = (select sum(count)
from table1
where [Category] = '1'
and [ACCOUNT] = 'A'
and [Metric Name] = 'ABC' );
SET @variable2 = 'select sum(count)
from table1
where [Category] = '1'
and [ACCOUNT] = 'B'
and [Metric Name] = 'DEF' ';
update [dbo].[table1]
set calculated field = (
(case when
@variable1 > '0'
then
@variable1
else
@variable2
end)
Проблема сэтот сценарий заключается в том, что выходное значение реплицируется по всем строкам, а не только для этой комбинации.В основном мне нужно использовать Группу по столбцам Account
и Category
для вычисляемого поля, чтобы выходные значения отображались только для этой комбинации.