日期:2014-05-16  浏览次数:20622 次

求sql查询语句
本帖最后由 chaidaxia 于 2014-04-24 08:17:19 编辑
表如下:



区域  类型  金额      日期
华北   买     3500        2013.3.25
西北    卖     2500      2013.3.24
东北   买      1200      2013.3.25
华北   卖      2000       2013.3.23
东北   卖     200            2013.3.25
华北   买      10000       2013.3.29

按地区进行分类汇总,统计买和卖的次数
结果:
区域    金额                                 买的次数      卖的次数
华北   (3500+2000+10000)    3                   0
东北      (1200+200)                 1                   1
西北           2500                              0                   1

求大侠们指教。  
------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-04-24 08:19:43
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据@a
declare @a table([区域] nvarchar(4),[类型] nvarchar(2),[金额] int,[日期] datetime)
insert @a
select N'华北',N'买',3500,'2013.3.25' union all
select N'西北',N'卖',2500,'2013.3.24' union all
select N'东北',N'买',1200,'2013.3.25' union all
select N'华北',N'卖',2000,'2013.3.23' union all
select N'东北',N'卖',200,'2013.3.25' union all
select N'华北',N'买',10000,'2013.3.29'
--------------生成数据--------------------------

select [区域],SUM([金额])[金额],count(CASE WHEN [类型]=N'买' THEN 1 ELSE NULL END )'买的次数',
count(CASE WHEN [类型]=N'卖' THEN 1 ELSE NULL END )'卖的次数'
from @a
GROUP BY [区域]
----------------结果----------------------------
/* 
区域   金额          买的次数