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

求关于数据按月份统计的sql,急!!
有个账单表AccountTable,
createDate datetime,创建时间
moneyName varchar ,币种
surrogateSum money,代理费
amount money,总额
handle varchar ,经办

要求出下列格式的表
  月份 1 2 3 4 。。。
年份 代理费|总额 代理费|总额 代理费|总额 代理费|总额  

2000
2001
2002
.
.
.
就是按年份和月份统计出代理费和总额,经办(handle)是查询条件,
另外,由于有多个币种,统计数据中要统一换算成人民币,汇率是常量,
求解决办法及sql,(也可先不考虑币种),急!!

------解决方案--------------------
可惜不是2005,不然有新的强大的专用关键词可以用。

只能用原始的土办法来写了:


SQL code
Select YEAR(createDate),
  MAX(Case MONTH(createDate) When 1 Then surrogateSum Else 0 End) S1, -- 1月代理费
  MAX(Case MONTH(createDate) When 1 Then amount Else 0 End) A1, -- 1月总额
  MAX(Case MONTH(createDate) When 2 Then surrogateSum Else 0 End) S2, -- 2月代理费
  MAX(Case MONTH(createDate) When 2 Then amount Else 0 End) A2, -- 2月总额
  MAX(Case MONTH(createDate) When 3 Then surrogateSum Else 0 End) S3, -- 3月代理费
  MAX(Case MONTH(createDate) When 3 Then amount Else 0 End) A3, -- 3月总额
  ...
From AccountTable
Group By YEAR(createDate)