0
好的,所以问题的总体范围是我使用表值函数,以便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
谢谢你的回答。然而,那不是我真正想要的。我想也许我解释了它有点麻烦。所以我现在试着更好地解释它。上表中的一行将有一个str_beta_group,str_alpha_group,str_group,debit,credit和credit_total的列...对不起意外地打开进入开发.. –