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

高分一个复杂的查询结果集的显示

2012-01-16 
高分求助一个复杂的查询结果集的显示我有三个表的内容,分别是:sitenametimesall108site236sitenamecompany

高分求助一个复杂的查询结果集的显示
我有三个表的内容,   分别是:
sitename     times
all108
site236
sitename   company_id   times
all000535
all000963
all002310
site2000535
site200231

sitename   company_id   pact_id   times
all0005000135
all0009000163
all0023000210
site20005000135
site2002300011

要求查询的结果能够显示为这个样子
sitenamecompany_idpact_idtimes
all     108
  0005     35
                                              0001     35
                    0009                               63
                                              0001     63
    0023     10
                                              0002     10
site2                                                 36
                  0005                                 35
                                              0001     35
                  0023                                   1
                                              0001       1
不用游标嵌套循环要怎么做呢?恳请高手解答




[解决办法]
没有做过,帮顶
[解决办法]
感觉好奇怪的要求,帮顶!
[解决办法]
学习帮顶
[解决办法]
select 'all ' sitename,108 times into t1 union
select 'site2 ' sitename,36 times
go
select 'all ' sitename, '0005 ' company_id, 35 times into t2 union
select 'all ' sitename, '0009 ' company_id, 63 times union
select 'all ' sitename, '0023 ' company_id, 10 times union
select 'site2 ' sitename, '0005 ' company_id, 35 times union
select 'site2 ' sitename, '0023 ' company_id, 1 times
go
select 'all ' sitename, '0005 ' company_id, '0001 ' pact_id, 35 times into t3 union
select 'all ' sitename, '0009 ' company_id, '0001 ' pact_id, 63 times union
select 'all ' sitename, '0023 ' company_id, '0002 ' pact_id, 10 times union
select 'site2 ' sitename, '0005 ' company_id, '0001 ' pact_id, 35 times union


select 'site2 ' sitename, '0023 ' company_id, '0001 ' pact_id, 1 times
go

selectcase when company_id is null and pact_id is null then sitename else null end sitename,
case when pact_id is not null then null else company_id end company_id,
pact_id,
times
from
(
select sitename,null company_id,null pact_id,times from t1 union
select sitename,company_id,null pact_id,times from t2 union
select sitename,company_id,pact_id,times from t3
) tb

drop table t1
drop table t2
drop table t3

热点排行
Bad Request.