问题可能比较鸡肋,初学不是很会
sqlserver吧
全部回复
仅看楼主
level 1
wanwusangz 楼主
用第一个表里bookid下a1、a2、a3、a4各自的价格来计算第二个表里SUM列
2017年11月23日 03点11分 1
level 7
联表查询a1.a2.a3.a4分别*peice再用函数求和不行么
手上没表格 你试下这思路
2017年11月25日 09点11分 2
如果不知a1,a2,a3,a4,比如有100000个bookid对应同样数量的price,总不能都用联表查询吧,有没有通用的做法,可以用简短的语句处理这类问题
2017年11月30日 00点11分
level 1
select (s1+s2+s3+s4)sum ,custnm,a1,a2,a3,a4 from
(select case when a1>0 then a1*12.3 else 0 end as s1,
case when a2>0 then a2*15.6 else 0 end as s2,
case when a3>0 then a2*10.9 else 0 end as s3,
case when a4>0 then a2*9.9 else 0 end as s4,
a1,a2,a3,a4,
custname
from t2)
t3
或者放存储过程,把第一个表的单价换成动态的。
2017年11月28日 09点11分 3
试过用case when,但是bookid数量更多,1000以上呢,能有其他通用的方法解决吗
2017年11月30日 00点11分
只是单纯用数据库做这个没有任何意义,实际程序中会判断购买的书籍,并传递对应的单价
2017年11月30日 08点11分
level 4
假设上面那张表示A表,下面是B表。
在存储过程里面,对于B表可以进行循环处理,
至于有哪些字段则可以通过查询B表系统表字段来判定有什么字段名称,
找到字段名称再在A表中找到对应的价格进行计算,没有的则不计算
每次循环可以算出一个sum值,更新到B表即可
[url]http://发 表[/url]
2017年12月06日 06点12分 4
这个能支持无限个,在写的时候不要用递归方法。递归数据库限制只能32次。
2017年12月06日 07点12分
1