很复杂的求和统计

cym110_78 2003-11-20 04:09:48
费用名称 费用公式 金额(元)
工资 无 1500
奖金 无 300
小计 r1+r2 1800
午餐补贴 无 120
合计 r3+r4 1920
注:r代表是第几行的金额值
这里面的难点是在任意位置可能要插入行,例如在r1下插入一行,那么小计的"费用公式"要变为r1+r3,即费用公式是动态变化的,而且这时如果用户把小计的公式改为r1+r2+r3也是可以的,这时小计与合计的金额值都会相应的改变,请教高手指点一二。
...全文
17 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
loulanlouzhu 2003-11-20
  • 打赏
  • 举报
回复
楼主不懂 报表 和 数据 的区别


-->>想听听!!


===弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪
的星星蓝蓝的天.


===本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利
zjcxc 2003-11-20
  • 打赏
  • 举报
回复
统计结果:

费用名称 金额
---------- ----------------------------------------
工资 1500.00
奖金 300.00
-小计- 1800.00
午餐补贴 120.00
-小计- 120.00
-总计 1920.00

(所影响的行数为 6 行)
zjcxc 2003-11-20
  • 打赏
  • 举报
回复
--实现楼主效果的数据统计

select 费用名称,金额
from(
select a.类别
,费用名称=case when grouping(a.类别)=1 then '-总计'
when grouping(a.费用名称)=1 then '-小计-'
else a.费用名称 end
,金额=sum(b.金额)
from @费用类别 a join @费用表 b on a.id=b.id
group by a.类别,a.费用名称 with rollup
) a
zjcxc 2003-11-20
  • 打赏
  • 举报
回复
--下面举个个例子,说明数据存储与统计

--设计存储数据的表
declare @费用类别 table(id int identity(1,1),费用名称 varchar(10),类别 int)
declare @费用表 table(id int,金额 decimal(20,2))

--添加测试数据
insert into @费用类别
select '工资',1
union all select '奖金',1
union all select '午餐补贴',2

insert into @费用表
select 1,1500
union all select 2,300
union all select 3,120

zjcxc 2003-11-20
  • 打赏
  • 举报
回复
你要表设计还是统计.

如果是统计,你的表是如何设计的?
pengdali 2003-11-20
  • 打赏
  • 举报
回复
楼主不懂 报表 和 数据 的区别
txlicenhe 2003-11-20
  • 打赏
  • 举报
回复
也可以:
1:费用公式表: 费用ID,费用名称,公式,是否统计字段...
2:金额表: 费用ID,金额
txlicenhe 2003-11-20
  • 打赏
  • 举报
回复
建议:
1:费用公式表: 费用ID,费用名称,公式
2:金额表: 费用ID,金额
txlicenhe 2003-11-20
  • 打赏
  • 举报
回复
这种表结构设计得有点...
是EXCEL吧?  对SQL来说太难了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧