我上此提到的ID Money Type
1 1000 定金款
2 200 CD款
3 800 相纸款
4 100 CD款
定金款 1000 CD款 300 相纸款 800如何用一条语句或最简单的方法实现上面的功能。谢谢您用select type,sum(money) from table group by type是能解决问题的,
但是假设我再加一个5 100 相纸定金 的话,那我要实现的相纸款就是相纸款+相纸定金,这个怎么做,如果还用上面的话是不行的,都是单列出来的。谢谢。
1 1000 定金款
2 200 CD款
3 800 相纸款
4 100 CD款
定金款 1000 CD款 300 相纸款 800如何用一条语句或最简单的方法实现上面的功能。谢谢您用select type,sum(money) from table group by type是能解决问题的,
但是假设我再加一个5 100 相纸定金 的话,那我要实现的相纸款就是相纸款+相纸定金,这个怎么做,如果还用上面的话是不行的,都是单列出来的。谢谢。
除非你硬套一个"规则"上去,比如开头2个字都是"相纸"...
--前提你的所有款的名称都是2个字.若出现'abc款'和'abc定金'则最后得到'ab款'
select left(type,2)+'款',sum(money) from table group by left(type,2)
--插入中间表
select * into # from table
--更新字段统一起来
update table set type=stuff(type,len(type)-1,2,'款')
where type like '%定金'
--从中间表查找
select type,sum(money) from # group by type
FromType ToType
定金款 定金款
CD款 CD款
相纸款 相纸款
相纸定金 相纸款SQL语句如下:
SELECT SUM(T.Money) AS Money,X.ToType AS Type FROM [Table] T JOIN XType X ON T.Type=X.FromType GROUP BY X.ToType
解释:先联接转换表,获得统一的“类型”值,再分组。如果还有其它需要统一的“类型”值,只需维护转换表即可。