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

按月度分类汇总

2013-09-06 
按月份分类汇总ID订单号日期 1cno0012013-6-52cno0012013-6-103cno0022013-6-244cno0012013-7-55cno001201

按月份分类汇总
ID    订单号      日期 
1     cno001    2013-6-5
2     cno001    2013-6-10
3     cno002    2013-6-24
4     cno001    2013-7-5
5     cno001    2013-7-10
6     cno002    2013-7-15

得到结果:

订单号        月份
cno001     2013-6
cno002     2013-6
cno001     2013-7
cno002     2013-7
[解决办法]

----------------------------
-- Author  :DBA_Huanzj(發糞塗牆)

-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 
--Oct 19 2012 13:38:57 
--Copyright (c) Microsoft Corporation
--Enterprise Evaluation Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] int,[订单号] varchar(6),[日期] datetime)
insert [huang]
select 1,'cno001','2013-6-5' union all
select 2,'cno001','2013-6-10' union all
select 3,'cno002','2013-6-24' union all
select 4,'cno001','2013-7-5' union all
select 5,'cno001','2013-7-10' union all
select 6,'cno002','2013-7-15'
--------------开始查询--------------------------

select distinct [订单号],SUBSTRING(convert(varchar(4),[日期]),1,4)+'-'+convert(varchar(2),datepart(mm,[日期]) )
from [huang]

[解决办法]
select distinct 订单号,convert(varchar,year(日期))+'-'+convert(varchar,month(日期))
from TB

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




declare @tb table(
id int,
订单号 varchar(20),
日期 datetime
)
insert into @tb
select 1,'cno001','2013-6-5' union all
select 2,'cno001','2013-6-10' union all
select 3,'cno002','2013-6-24' union all
select 4,'cno001','2013-7-5' union all
select 5,'cno001','2013-7-10' union all
select 6,'cno002','2013-7-15'

;with tab as
(select 订单号,日期=convert(varchar,year(日期))+'-'+convert(varchar,month(日期)) from @tb)
select * from tab group by 订单号,日期

[解决办法]



declare @tb table(
id int,
订单号 varchar(20),
日期 datetime
)
insert into @tb
select 1,'cno001','2013-6-5' union all
select 2,'cno001','2013-6-10' union all
select 3,'cno002','2013-6-24' union all
select 4,'cno001','2013-7-5' union all
select 5,'cno001','2013-7-10' union all
select 6,'cno002','2013-7-15'


select t.订单号, convert(char(7),t.日期,121) as 'YearMonth'
from @tb t
group by t.订单号, convert(char(7),t.日期,121) 

[解决办法]
SELECT DISTINCT [订单号],CAST(YEAR(日期) AS VARCHAR(10)) + '-' +CAST(MONTH(日期) AS VARCHAR(10)) AS dd FROM huang
 

热点排行