我创建的存储过程最初有效,但要求已更改。现在的要求基本上是结果应该是:
item | totalproperty1 | percentofproperty1 | totalproperty2 | ...
在这样做时,我们需要计算百分比计算的分母总数(以防止必须再次重新计算百分比的总和)。为了尝试这样做,我尝试了这个:
Declare @Item varchar(50)
Declare @TotalProperty1 decimal (9,2)
Declare @PercentProperty1 decimal (9,2)
Declare @TotalProperty2 decimal (9,2)
...
......只是声明了总数和百分比项目,整个数据类型相同(这是一个丑陋的混乱,我道歉)
select @Item = item,
@TotalProperty1 = (--long query to get the total
),
@PercentProperty1 = (--long query to get the items compared
/ @TotalProperty1),
...
from table1 join table2 on table1.table2ID = table2.ID
where -- condition
本节中的...是重复的总计/百分比计算,仅适用于不同的属性。
我删除了每个子查询上的右括号,并对它们进行了读取以验证它们是否与子查询的开头相匹配。之前,计算基本上是所有属性匹配与项目总数的总和,但要求使其更精细。
当我尝试执行alter脚本时,它会显示“Command(s)已成功完成”。这很棒,但是当我尝试执行存储过程时,它也会返回“命令已成功完成”。这不是预期的结果(我认为“选择@item ...条件”部分仍然应该返回select语句,对吗?)。
之前的工作与当前工作的主要变化是之前,我没有做select变量=查询,变量2 =查询等,而是一个典型的select语句。如果我不得不猜测,这就是问题所在,但我正在使用this as a guide来处理我在中途收到的消息141.