首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

做了个计件工资系统,统计的时分遇到了点麻烦求高手

2013-09-05 
做了个计件工资系统,统计的时候遇到了点麻烦求高手计件工资系统做了个,统计遇到了麻烦。问题如下某个产品设

做了个计件工资系统,统计的时候遇到了点麻烦求高手
计件工资系统做了个,统计遇到了麻烦。问题如下

某个产品设置多个工段,这是随机的,有可能只有2档,有可能有5档工资,
我这里假设3档工资,插入数据库表里作为3条记录。
字段1是大于等于值,字段2是小于的值。
例如大于等于0小于200,单价为1元
大于等于200小于500,单价为1.5,大于等于500,单价为2元

现在录入一批工人的工作数量,例如100条记录,个数从100-1000不等

如何能计算出总工资。在这些都是随机的情况下

[解决办法]


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,2

create 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',800

select * from #item
select * from #tb

select 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_no

drop table #item,#tb

/*
empl_nosalary
--------------------------
0013.50
0023.00
0035.00
*/


这是不是你想要的结果?

[解决办法]
你用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语句累加就可以了  
[解决办法]
不知道你能懂我的意思不   case你的三种条件情况 把单价置成不同的值   然后想成 累加就是总工资了
[解决办法]
自己昨晚睡觉做了个梦已经解决。。。。。。。。。。。。。。。。。。。。。。。。。。。结贴

热点排行