34,591
社区成员
发帖
与我相关
我的任务
分享
----------------------------------------------------------------
-- Author :fredrickhu(我是小F,向高手学习)
-- Date :2009-10-28 09:57:53
-- Version:
-- Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
-- Nov 24 2008 13:01:59
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([渠道编号] varchar(3),[渠道名称] varchar(5),[时间] datetime)
insert [tb]
select 'id1','name1','2009-10-05' union all
select 'id2','name2','2009-10-05' union all
select 'id3','name3','2009-10-05' union all
select 'id4','name4','2009-10-06' union all
select 'id5','name5','2009-10-06' union all
select 'id6','name6','2009-10-06' union all
select 'id7','name7','2009-10-06'
--------------开始查询--------------------------
select
渠道编号, 渠道名称 ,
case when datename(day,时间)=5 then convert(varchar(10),时间,120) else '' end as [5] ,
case when datename(day,时间)=6 then convert(varchar(10),时间,120) else '' end as [6]
from
tb
----------------结果----------------------------
/* 渠道编号 渠道名称 5 6
---- ----- ---------- ----------
id1 name1 2009-10-05
id2 name2 2009-10-05
id3 name3 2009-10-05
id4 name4 2009-10-06
id5 name5 2009-10-06
id6 name6 2009-10-06
id7 name7 2009-10-06
(7 行受影响)
*/
--> 测试数据:[table1]
if object_id('[table1]') is not null drop table [table1]
go
create table [table1]([渠道编号] varchar(3),[渠道名称] varchar(5),[时间] datetime)
insert [table1]
select 'id1','name1','2009-10-05' union all
select 'id2','name2','2009-10-05' union all
select 'id3','name3','2009-10-05' union all
select 'id4','name4','2009-10-06' union all
select 'id5','name5','2009-10-06' union all
select 'id6','name6','2009-10-06' union all
select 'id7','name7','2009-10-06'
select 渠道编号, 渠道名称 ,
[5]= case when DATEPART(day,时间)=5 then convert(varchar(10),时间,120) else '' end ,
[6]= case when DATEPART(day,时间)=6 then convert(varchar(10),时间,120) else '' end
from
table1
/*
渠道编号 渠道名称 5 6
---- ----- ---------- ----------
id1 name1 2009-10-05
id2 name2 2009-10-05
id3 name3 2009-10-05
id4 name4 2009-10-06
id5 name5 2009-10-06
id6 name6 2009-10-06
id7 name7 2009-10-06
*/
select
渠道编号, 渠道名称 ,
[5]=MAX(case when DATEPART(day,时间)=5 then convert(varchar(10),时间,120) else '' end ),
[6]=MAX(case when DATEPART(day,时间)=6 then convert(varchar(10),时间,120) else '' end )
from table1
group by 渠道编号, 渠道名称