Итак, общий объем проблемы заключается в том, что я использую функцию с табличным значением, поэтому SSRS может создавать различные отчеты на основе данных, а затем я использовал другую программу, чтобы сшить все эти отчеты вместе. Так или иначе, проблема в том, что мне нужно получить значение столбца, ЕСЛИ другой столбец в этой строке содержит определенное значение. Затем, после добавления этого значения в другое место, новое значение возвращается в столбец строки базы данных, чтобы другие отчеты использовали эти данные. Так, например:
RETURNS @ReportTable table
(
str_beta_group varchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
str_alpha_group varchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
str_group varchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
debit decimal(24, 6) NULL,
credit decimal(24, 6) NULL,
credit_total decimal(24,6) NULL
)
Я новичок в разработке баз данных, и я пробовал разные способы, я не могу понять, как правильно синтаксис, и я всегда получаю ошибки. Итак, основываясь на приведенной выше таблице, как бы я написал эту логику с синтаксисом T-Sql:
decimal epsilon_temp, gamma_temp;
if(str_group='epsilon')
{
epsilon_temp = credit; --the credit from that row where str_group = epsilon
}
else if(str_group='gamma')
{
gamma_temp = credit; --the credit from that row where str_group = gamma
}
--Then after that UPDATE
UPDATE @ReportTable
SET credit_total = SUM(epsilon_temp + gamma_temp )
WHERE str_group = epsilon