首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

急求查询每个月的来款

2013-06-19 
急!求查询每个月的回款表结构:省区客户回款时期回款金额湖北湖北科技公司2013/3/4123湖北湖北农村2013/3/6

急!求查询每个月的回款
表结构:
省区客户       回款时期      回款金额
湖北湖北科技公司2013/3/4123
湖北湖北农村        2013/3/69000
湖南湖南农业  2013/3/4     678
湖北大吃大喝公司2013/1/46789
山东科技       2013/2/4        56777

求查询后得出表结构:
省区一月份的回款金额二月份的回款金额三月份的回款金额
湖北          6789                   0                     9132
湖南           0                       0                        678
山东           0                 56777                       0

请各位大神们帮帮忙!

[解决办法]

----------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-04-14 14:42:23
-- Version:
--      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (Intel X86) 
--Jun 17 2011 00:57:23 
--Copyright (c) Microsoft Corporation
--Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([省区] varchar(4),[客户] varchar(12),[回款时期] datetime,[回款金额] int)
insert [huang]
select '湖北','湖北科技公司','2013/3/4',123 union all
select '湖北','湖北农村','2013/3/6',9000 union all
select '湖南','湖南农业','2013/3/4',678 union all
select '湖北','大吃大喝公司','2013/1/4',6789 union all
select '山东','科技','2013/2/4',56777
--------------开始查询--------------------------

select [省区],[一月份的回款金额]=SUM(CASE WHEN [回款时期] BETWEEN '2013-01-01' AND '2013-01-31' THEN [回款金额] ELSE 0 END ) ,
[二月份的回款金额]=SUM(CASE WHEN [回款时期] BETWEEN '2013-02-01' AND '2013-02-28' THEN [回款金额] ELSE 0 END ) ,
[三月份的回款金额]=SUM(CASE WHEN [回款时期] BETWEEN '2013-03-01' AND '2013-03-31' THEN [回款金额] ELSE 0 END ) 
from [huang]
GROUP BY [省区]
----------------结果----------------------------
/* 
省区   一月份的回款金额    二月份的回款金额    三月份的回款金额


---- ----------- ----------- -----------
湖北   6789        0           9123
湖南   0           0           678
山东   0           56777       0
*/

热点排行