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

sql语句的统计,大家看看,帮帮忙啊。
两个表的部分字段:
行政发文表:文件名称,文件编号,登记日期,文件类型....
行政收文表:文件名称,文件编号,登记日期,文件类型....

 
上面的文件类型分别是:
行政收文文件类型:上级,内部,其他。
行政发文文件类型:政府,协会,其他。


统计效果:

------解决方案--------------------
试试这个:

create table 行政发文表(文件名称 varchar(30),文件类型 varchar(20))
create table 行政收文表(文件名称 varchar(30),文件类型 varchar(20))

insert into 行政发文表
select '行政收文','上级,内部,其他'

insert into 行政收文表
select '行政发文','政府,协会,其他'
go


select 文件名称,
       SUBSTRING(t.文件类型, number ,CHARINDEX(',',t.文件类型+',',number)-number) as 文件类型
from
(
select * from 行政发文表 
union all
select * from 行政收文表
)t,master..spt_values s
where s.number >=1
and s.type = 'P'
and SUBSTRING(','+t.文件类型,s.number,1) = ','
order by 文件名称 desc
/*
文件名称 文件类型
行政收文 上级
行政收文 内部
行政收文 其他
行政发文 政府
行政发文 协会
行政发文 其他
*/

------解决方案--------------------
直接union all两个查询就好了
------解决方案--------------------

select '行政收文' as '文件',文件类型 from 行政发文表
union--合并去重用union ,完全合并用union all
select '行政发文' as '文件',文件类型 from 行政收文表


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

select '行政发文',[TYPE] from 
dbo.行政发文
union 
select '行政收文',[type]
from dbo.行政收文