关于sql 数据库如何乘积求和,求总计

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:51:56
sql 数据库如何乘积求和

ID(序号) 车型
1 5
2 5
3 4
4 4
5 5
以上为一段时间内先后通过收费站的5台车次,是这样的两个字段,5型车每次收费25元,4型车每次收费20元,通过了3个5型车和两个4型车,收费金额如何求和?即求出25X3+20X2=115,用存储过程能做到吗?(多谢!)

1定义存储过程
create procedure pro_name
as
declare @fi_cou int,@fou_cou int,@num int

set @fi_cou=(select count(*) from cl where 车型=5)
set @fou_cou=(select count(*)from cl where 车型=4)
set @num = 25*@fi_cou+20*@fou_cou
select @num as '合计'
go
二执行存储过程
exec pro_name
go
解释:
@fi_cou:五号车的统计量
@fou_cou:四号车的统计量
@num:总和
注意:在mssql 2000下可以执行(mssql2005也没有问题,呵呵)。
在这个存储过程的基础上还可以增加些功能,你自己决定吧。

没有分!

可以做得到。
方法1.用游标累加的方式;
方法2.求5行车的count值,再求4型车的count值.然后乘积后相加。

方法1(推荐):
增加一个资费表ttt,内容大概是:
车型 价格
1 5
2 10
3 15
4 20
5 25
然后:SELECT SUM(A.车型*B.价格) FROM 表 A INNER JOIN ttt B ON A.车型=B.车型

方法2:
SELECT SUM(车型*CASE WHEN 车型=5 THEN 25 ELSE 20 END) FROM 表