SQL查询问题,按要求GROUP BY以后,列出统计表。
解决方案 »
- 求一个SQL 语句
- 请高手帮我写条SQL语句
- 这个错误 大家帮忙矫正一下
- 我装好数据库之后出现这个提示!!!
- sql server 2008 和netbeans 链接问题
- 如何连接命名实例的服务器?在不知道计算机名称的情况下
- 取出的多个字段中,包含多个smalldatetime字段,如何只取时间字段的日期部分??
- 菜鸟问题:关于日期的处理。
- 行列转换时怎么总是统计不完全呢? typein不完全
- 一个初学者请教有关数据库查询的问题
- SQL SERVER 2005在哪里可以找到SSIS?
- 请教个left join问题,select a left join b,这个b有个where条件,写哪儿比较规范呢?
——————————————————————————————
fptid fieldid content gid flag
ezcat billid 123 1 1
ezcat phone 445 1 1
ezcat phone 346 2 1
ezcat billid 567 2 1
——————————————————————————————
要求:可否转成下面様子?
——————————————————————————————
ftpid billid phone gid
ezcat 123 445 1
ezcat 346 567 2
——————————————————————————————
(
fptid varchar(10),
fieldid varchar(10),
content int,
gid int,
flag int
)insert into tb
select 'ezcat','billid',123,1,1 union all
select 'ezcat','phone',445,1,1 union all
select 'ezcat','phone',346,2,1 union all
select 'ezcat','billid',567,2,1select fptid
,sum(case when fieldid='billid' then content else 0 end) as billid
,sum(case when fieldid='phone' then content else 0 end) as phone
,gid
from tb group by fptid,gid
/*
------------------------
fptid billid phone gid
ezcat 123 445 1
ezcat 567 346 2
*/
——————————————————————————————
fptid fieldid content gid flag
ezcat billid 123 1 1
ezcat phone 551 1 1
ezcat address 上海 1 1
ezcat billid 346 1 1
ezcat phone 789 2 1
ezcat address 北京 1
——————————————————————————————
要求:可否转成下面様子?
——————————————————————————————
ftpid billid phone address gid
ezcat 123 551 上海 1
ezcat 346 789 北京 2
——————————————————————————————
create table tb
(
fptid varchar(10),
fieldid varchar(10),
content nvarchar(10),
gid int,
flag int
)insert into tb
select 'ezcat','billid','123',1,1 union all
select 'ezcat','phone','445',1,1 union all
select 'ezcat','phone','346',2,1 union all
select 'ezcat','billid','567',2,1 union all
select 'ezcat','address','上海',1,1 union all
select 'ezcat','address','北京',2,1
select fptid
,max(case when fieldid='billid' then content end) as billid
,max(case when fieldid='phone' then content end) as phone
,max(case when fieldid='address' then content end) as address
,gid
from tb group by fptid,gid
/*
----------------------
fptid billid phone address gid
ezcat 123 445 上海 1
ezcat 567 346 北京 2
*/