当前位置: 代码迷 >> Sql Server >> sql语句写法 group by
  详细解决方案

sql语句写法 group by

热度:36   发布时间:2016-04-27 13:04:20.0
求一个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 充值 bon a.userid=b.userid)tgroup by 推广人姓名,convert(varchar(7),paydate,120)
------解决方案--------------------
SQL code
SELECT AccountName,CONVERT(VARCHAR(7),paydate,20) AS 月份,SUM(payamount) AS 会员充值金额FROM 充值表 AS A ,推广人表 AS BWHERE A.UserId = B.UserIdGROUP BY AccountName,CONVERT(VARCHAR(7),paydate,20)
------解决方案--------------------
SQL code
select b.AccountName,       rtrim(year(a.paydate))+'年'+rtrim(month(a.paydate))+'月' '月份',       sum(payamount) '会员充值金额'from tab1 ainner join tab2 bon a.UserID=b.UserIDgroup 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.userIDgroup by camp.AcountName,paydate
  相关解决方案