我有三列,如下表a所示
Student Day Shifts
129 11 4
91 9 6
166 19 8
164 26 12
146 11 6
147 16 8
201 8 3
164 4 2
186 8 6
165 7 4
171 10 4
104 5 4
1834 134 67
我正在写一个tvf来计算为学生生成的积分值,如下所示
ALTER function Statagic(
@StartDate date
)
RETURNS TABLE
AS
RETURN
(
with src as
( select
Division=case when Shifts=0 then 0 else cast(Day as float)/cast(Shifts as float) end,*
from TableA
)
,tgt as
(select *,Points=Student*Division from src
)
select * from tgt)
当我执行以上tvf时(从Statagic('3/16/2014')中选择*) 我的输出低于
129 11 4 2.75 354.75
91 9 6 1.5 136.5
166 19 8 2.375 394.25
164 26 12 2.16666666666667 355.333333333333
146 11 6 1.83333333333333 267.666666666667
147 16 8 2 294
201 8 3 2.66666666666667 536
164 4 2 2 328
186 8 6 1.33333333333333 248
165 7 4 1.75 288.75
171 10 4 2.5 427.5
104 5 4 1.25 130
1834 134 67 2 3668
注意: 如果您看到表中三列的最后一行是剩余列的总数。所以当您在添加时看到最后两列TVF输出中的最后一行时,我没有得到相同的数据我得到更多。
伙计们,请帮助我,我正在努力修复我在各方面尝试的这个错误,但我无法修复它。
select 354.75+136.5+394.25+355.333333333333+267.666666666667+294+536+328+248+288.75+427.5+130=3760.750000000000
3668不是euql到3760.75(我的价值超过100)