计件工资系统做了个,统计遇到了麻烦。问题如下某个产品设置多个工段,这是随机的,有可能只有2档,有可能有5档工资,
我这里假设3档工资,插入数据库表里作为3条记录。
字段1是大于等于值,字段2是小于的值。
例如大于等于0小于200,单价为1元
大于等于200小于500,单价为1.5,大于等于500,单价为2元现在录入一批工人的工作数量,例如100条记录,个数从100-1000不等如何能计算出总工资。在这些都是随机的情况下

解决方案 »

  1.   


    create table #item(v1 int,v2 int ,price decimal(12,2))
    insert into #item
    select 0,200,1
    union all select 200,500,1.5
    union all select 500,1000,2create table #tb(empl_no varchar(10),num int)
    insert into #tb
    select '001',300
    union all select '002',100
    union all select '003',600
    union all select '002',800
    union all select '003',100
    union all select '001',500
    union all select '003',800select * from #item
    select * from #tbselect empl_no,sum(salary) as salary
    from (
    select *,salary=(select top 1 price from #item b where a.num>=v1 and a.num<v2)
    from #tb a
    )t
    group by empl_nodrop table #item,#tb/*
    empl_no salary
    --------------------------
    001 3.50
    002 3.00
    003 5.00
    */这是不是你想要的结果?
      

  2.   

    你用case  when语句SQL中Case的使用方法   Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex            WHEN '1' THEN '男'           WHEN '2' THEN '女'  ELSE '其他' END  --Case搜索函数  CASE WHEN sex = '1' THEN '男'           WHEN sex = '2' THEN '女'  ELSE '其他' END
    根据case条件取得不同的单加  最后三个csse语句累加就可以了  
      

  3.   

    不知道你能懂我的意思不   case你的三种条件情况 把单价置成不同的值   然后想成 累加就是总工资了
      

  4.   

    没太看懂详细的,但是问题看明白了。建议放到前台去处理。1、实在懒的话,直接手写页面
    if 起始值<=工资/件数<=结束值 then
    xxoo
    end if2、如果想做进数据去,设计好表,添加完数据。
    读取表内容那个生成一下文件,内容如第1点