分不多,如何实现分部门系数查询和计

ahhfql 2014-08-28 04:53:23
表1 姓名 系数 部门系数合 总额1 总额2 总额3 总额4 考勤系数
张三 1 2.3 10000 12000 13000 200 1
李四 0.5 2.3 10000


表2 部门 编号 部门系数和
1 张三 2.3
2 张三 2.4
3 张三 2.8
5 张三 1.8

姓名 应发1 应发2 应发3 应发4 应发合计
张三



4总额都大于0,计算方式是
应发1=总额1*系数/1部门系数和*考勤系数
应发2=总额2*系数/2部门系数和*考勤系数
应发3=总额3*系数/3部门系数和*考勤系数
应发4=总额4*系数/5部门系数和*考勤系数
应发合计=应发1+应发2+应发3+应发4

如4个总额中有负数,4个数和大于0 计算方式是
应发合计=(总额1+总额2+总额3+总额4)*系数/部门系数和(最小部门系数和)*考勤系数
只是部分数据
...全文
204 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaodongni 2014-08-29
  • 打赏
  • 举报
回复
看懂了,有个问题,既然每个金额对应的部门系数和不同 为啥表1里面会有部门系数了? --测试数据 create table #t (xm char(10),xs decimal(8,1) ,bmxs decimal(8,1),money1 money ,money2 money,money3 money, money4 money ,kqxs decimal(8,1)) create table #t2 (bm int,bh char(10),bmxsh decimal(8,1)) insert into #t values ('张三',1,2.3,10000,12000,13000,200,1) insert into #t2 select '1','张三','2.3'union all select '2','张三','2.4'union all select '3','张三','2.8'union all select '5','张三','1.8' --执行代码 with t1 as (select xm,xs,bmxs,kqxs,je, case bm when 'money1' then '1' when 'money2' then '2' when 'money3' then '3' when 'money4' then '5' end as bm from #t unpivot (je for bm in (money1,money2,money3,money4)) as p) select xm, [1] 应发1,[2] 应发2,[3] 应发3,[5] 应发4, [1]+[2]+[3]+[5] as 应发合计 from (select xm,t1.bm,t1.je*t1.xs*t1.kqxs/#t2.bmxsh as yf from t1 join #t2 on t1.bm=#t2.bm and t1.xm=#t2.bh where t1.xs=1) as t3 pivot (sum(t3.yf) for bm in ([1],[2],[3],[5])) as p1
ahhfql 2014-08-28
  • 打赏
  • 举报
回复
xiaodongni 2014-08-28
  • 打赏
  • 举报
回复
能吧 你的表格式写清楚吗 也太乱了吧
ahhfql 2014-08-28
  • 打赏
  • 举报
回复
只计算系数是1的人员

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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