日期:2014-05-19  浏览次数:20675 次

求 一条SQL 语句
表   TableName
日期               金额       姓名       类型
2007-4-1       500         张三       手机费
2007-4-2       600         张三       电话费
2007-4-3       700         李四       手机费
2007-5-1       500         张三       手机费
2007-5-2       600         李四       电话费
-----------------------------------
想得到的结果
月份         姓名     总金额     佣金
2007-4     张三     1100         1710
2007-4     李四     700           1120
2007-5     张三     500           750
2007-5     李四     600           960
------------------------------
总金额=每个月的金额总和
手机费=1.5
电话费=1.6
佣金=类型   *金额  
例如:2007-4-1       500         张三       手机费,   500*1.5
佣金这里指是这里每天佣金的总和

------解决方案--------------------
Select
Convert(Varchar(7), 日期, 120) As 月份,
姓名,
SUM(金额) As 总金额,
SUM(Case 类型 When '手机费 ' Then 1.5 * 金额 When '电话费 ' Then 1.6 * 金额 Else 0 End) As 佣金
From
TableName
Group By
Convert(Varchar(7), 日期, 120),
姓名
Order By
月份,
姓名