原贴地址:
http://community.csdn.net/Expert/topic/3338/3338785.xml?temp=.9853022
有表t1:
ID | Place Time Level
---|-------------------
1 | P1 T3 L1
2 | P1 T1 L1
3 | P3 T1 L2
4 | P2 T2 L3
5 | P1 T1 L1
6 | P2 T3 L3
想实现的是:
生成字段间的所有项的组合,并统计表t1中包含该组合的纪录的条数(只统计有数据的组合)
1项组合
item count
P1 3
P2 2
.....
2项组合
item count
P1_T1 2
P1_T3 1
....
3项组合
item count
P1_T1_L1 2
P1_T1_L2 1
....
-----------------------------------------------------------------------
--示例
--示例数据
create table t1(ID int,Place varchar(10),Time varchar(10),Level varchar(10),aa varchar(10))
insert t1 select 1,'P1','T3','L1','aa'
union all select 2,'P1','T1','L1','bb'
union all select 3,'P3','T1','L2','aa'
union all select 4,'P2','T2','L3','aa'
union all select 5,'P1','T1','L1','aa'
union all select 6,'P2','T3','L3','bb'
go
--通用的处理存储过程
create proc p_qry
@count int=1--组合的项数
as
declare @sa Nvarchar(4000),@sb Nvarchar(4000)
declare @s2 Nvarchar(4000),@s3 Nvarchar(4000)
declare @s varchar(8000)
if isnull(@count,0)<0 set @count=1
select a=name,b=colid
into #t from syscolumns
where id=object_id(N't1') and name<>'ID'
set @count=case when @count>@@rowcount then @@rowcount else @count end
if @count=1
set @sa='select @s=@s+'' union all select item=[''+a+''],[count]=count(*) from t1 group by [''+a+'']'' from #t'
else
begin
select @sa='select @s=@s+'' union all select item=[''+a.a+'']'''
,@sb='''[''+a.a+'']'''
,@s2='from #t a'
,@s3='where a.b'
while @count>1
select @count=@count-1
,@sa=@sa+'+''+''''_''''+[''+'+char(@count/26+97)+char(@count%26+97)+'.a+'']'''
,@sb=@sb+'+'',[''+'+char(@count/26+97)+char(@count%26+97)+'.a+'']'''
,@s2=@s2+',#t '+char(@count/26+97)+char(@count%26+97)
,@s3=@s3+'<'++char(@count/26+97)+char(@count%26+97)+'.b'
+' and '++char(@count/26+97)+char(@count%26+97)+'.b'
select @sa=@sa+'+'',[count]=count(*) from t1 group by ''+'+@sb+' '+@s2+' '+left(@s3,len(@s3)-9)
end
set @s=''
exec sp_executesql @sa,N'@s varchar(8000) out',@s out
set @s=stuff(@s,1,11,'')
exec(@s)
go
--调用
exec p_qry 3
go
--删除测试
drop table t1
drop proc p_qry
分享到:
相关推荐
利用LABVIEW编程制作的多组数据组合处理,经测量的多组数据经过处理获得各个处理结果,均差,标准差,方差等
好氧厌氧组合处理养猪场养殖废水处理毕业论文.doc
以HNC理论的概念基元符号体系与句类体系为基础,探索分析了汉语中单字动词组合处理的特点及其句类特征,总结形成了处理规则。在BNF范式和产生式规则的基础上,对处理规则进行了形式化,并在计算机程序中实现了对规则...
a2S破络与混凝沉淀组合处理电镀废水的研究-论文.zip
2S破络与混凝沉淀组合处理电镀废水的研究-论文.zip
电子政务-含锌重金属废水的电沉积和膜分离组合处理方法.zip
90035778413919059_-_Na2S破络与混凝沉淀组合处理电镀废水的研究.zip
90035778413919059_-_Na2S破络与混凝沉淀组合处理电镀废水的研究.doc
对2套较有代表性的渗滤液组合处理工艺进行探讨,结果表明:以矿化垃圾生物反 应器为主体的处理工艺流程短,投资低,渗滤液处理后完全可以达标排放,非常适合垃圾填埋场 新建渗滤液处理系统;而以传统生物处理后续膜技术的...
采用硫酸对火电厂脱硫灰进行了改性处理,分析了改性脱硫灰与PAM对矿井水浊度的去除能力。结果表明,单独投加80 mg/L改性脱硫灰对矿井水浊度的去除率即可达80%,以80 mg/L改性脱硫灰复配0.3 mg/L PAM可进一步提高浊度...
基于NodeJS构建的YUI 3组合处理程序,支持单个模块和模块捆绑的版本控制。 与其他组合处理程序相比,显着的进步是您可以随时上传单个模块或捆绑软件的新版本,但这不会破坏现有的应用程序,因为旧版本仍然可用。 ...
本次实验使用NovAtel公司的Inertial Explorer软件,该软件可实现后处理差分、松组合、紧...本文档包含较完整地数据处理流程,包含自己假设基准站的坐标解算,差分后处理、模型误差设定、紧组合处理以及数据结果绘制等
基于组合处理方法的机动目标高质量3D InISAR成像
阐述煤化工浓盐水"零排放"技术存在的...结合我国典型的煤化工"零排放"项目中浓盐水的处理工艺以及博天环境研发的浓盐水"零排放"组合处理工艺,阐明组合工艺处理及废水综合回用将是煤化工浓盐水"零排放"技术的发展方向。
针对目前井下人员定位精度低、无法实时全局定位、搜救被困人员...选用卡尔曼滤波将两者进行信息融合,进行最优组合处理。测试结果表明,该系统实现了对矿井井下人员实时三维全局定位及快速搜救,具有一定的工程实际意义。
基于工作流的Web服务组合技术 基于工作流的Web服务组合技术
SBR-RO和MBR-RO组合处理的效率以去除总溶解固体,COD和氨的形式给出。 TDS去除率最高的是SBR-RO组合,去除率为95.94%,而MBR-RO组合的去除率为87.29%。 使用MBR-RO组合达到92.33%可获得最大的化学需氧量,同时...
两台接收机同步观测相同的卫星,然后将两台GPS接收机的观测值进行组合处理,就可以获得流动站相对于基准站的坐标和速度。本文主要介绍用RTKLIB 实现精密动态定位的过程,该过程包括观测文件和导航文件的读取、基准站...
研究了一种利用组合工艺处理生活污水实现中水回用的方法.生活污水经SBR池、缺氧池、混凝沉淀池、砂滤池处理后出水,污染物去除率达到90%,达到回用标准,可以回用于生活杂用水等.实验确定了各处理单元的最佳工艺...
能够无缝隙的输入徕卡GNSS、全站仪和水准仪测量数据,能够对各种数据进行组合处理及平差,平差模块采用与知名处理软件Bernese相同的MOVE3平差内核,使用者能够根据需要对卫星系统、采样率、电离层模型等进行设置,以...