日期:2014-05-18  浏览次数:20469 次

求一个sql语句写法 group by
一个表有充值日期 paydate(datetime),充值金额 payamount(decimal,如10.00),UserID 充值人ID
另外一个表AccountName 推广人姓名(唯一),UserID 发展的会员 同第一个表的UserID


现在要按照年的月份统计出推广人发展会员充值的金额

得出结果如下

AccountName 月份 会员充值金额
张山 2012年1月 200
张山 2012年2月 500
胡三 2012年3月 201

------解决方案--------------------

SQL code

select 推广人姓名,convert(varchar(7),paydate,120) as paydate,sum(充值金额) as 会员充值金额
from(
select a.推广人姓名,b.paydate,b.充值金额 from AccountName a left join 充值 b
on a.userid=b.userid)t
group by 推广人姓名,convert(varchar(7),paydate,120)

------解决方案--------------------
SQL code

SELECT AccountName,CONVERT(VARCHAR(7),paydate,20) AS 月份,SUM(payamount) AS 会员充值金额
FROM 充值表 AS A ,推广人表 AS B
WHERE A.UserId = B.UserId
GROUP BY AccountName,CONVERT(VARCHAR(7),paydate,20)

------解决方案--------------------
SQL code

select b.AccountName,
       rtrim(year(a.paydate))+'年'+rtrim(month(a.paydate))+'月' '月份',
       sum(payamount) '会员充值金额'
from tab1 a
inner join tab2 b
on a.UserID=b.UserID
group by b.AccountName,
rtrim(year(a.paydate))+'年'+rtrim(month(a.paydate))+'月'

------解决方案--------------------
SQL code

select camp.AcountName,paydate,sum(payamount) from campaign camp inner join pay 
on camp.userID = pay.userID
group by camp.AcountName,paydate