MSSQL网站制作之无纪律自界说分段的分类汇总+交织表处置...
你看出了作者的深度?深处半米!当初是冲那么多的大牛给他写序才买的,后来才发现无啥内容,作者也只是才用几年的新手,百花了几十两银子,再次感叹当今社会的虚伪与浮躁/*--原帖地点:http://community.csdn.net/Expert/topic/3845/3845290.xml?temp=.3689386--*/
--测试数据createtabletb(编号int,性子varchar(10),数目int,目标1decimal(10,1),目标2decimal)inserttbselect1,00,10,1.1,10unionallselect2,01,20,1.2,20unionallselect3,00,30,1.5,10unionallselect4,01,40,1.9,35unionallselect5,00,40,1.2,20
/*--处置请求
请求失掉下述了局:
a局限性子(00)性子(01)-------------------------------------------------------------目标1<1.0.00.001.0-1.29.63.631.3-1.59.38.381.9-1.99.00.00>=2.00.00目标1均匀值1.271.55目标2<10.00.0010-311.001.0031-50.00.00>=50.00.00目标2均匀值13.3327.50数目算计:80.0060.00------------------------------------------------------------------
分类申明:
局限性子(00)性子(01)目标1<1.0001.0-1.29(10+40)/(10+30+40)20/(20+40)1.3-1.5930/(10+30+40)01.6-1.99040/(20+40)>=200目标1均匀值:(1.1+1.5+1.2)/3(1.2+1.9)/2
目标2<100010-30(10+30+40)/(10+30+40)20/(20+40)31-50040/(20+40)>=5000目标2均匀值:(10+10+20)/3(20+35)/2
数目算计:10+30+4020+40--*/go
--查询处置selecta,局限,[性子(00)],[性子(01)]from(selecta=casea.idwhen1then目标1when21then目标2elseend,局限=a.lb,[性子(00)]=cast(casewhenb.a>0thenisnull(a.a*1./b.a,0)else0endasdecimal(10,2)),[性子(01)]=cast(casewhenb.a>0thenisnull(a.a*1./b.a,0)else0endasdecimal(10,2)),a.idfrom(selectb.id,b.lb,a=sum(casea.性子when00thena.数目end),b=sum(casea.性子when01thena.数目end)fromtbarightjoin(selectid=1,lb=<1.0,a=null,b=1.0unionallselectid=2,lb=1.0-1.29,a=1.0,b=1.3unionallselectid=3,lb=1.3-1.59,a=1.3,b=1.9unionallselectid=4,lb=1.9-1.99,a=1.9,b=2.0unionallselectid=5,lb=>=2,a=2.0,b=null)bona.目标1>=isnull(b.a,a.目标1)anda.目标1<isnull(b.b,a.目标1-1)groupbyb.id,b.lbunionallselectb.id,b.lb,a=sum(casea.性子when00thena.数目end),b=sum(casea.性子when01thena.数目end)fromtbarightjoin(selectid=21,lb=<10,a=null,b=10unionallselectid=22,lb=10-31,a=10,b=31unionallselectid=23,lb=31-50,a=31,b=51unionallselectid=25,lb=>=50,a=50,b=null)bona.目标2>=isnull(b.a,a.目标2)anda.目标2<isnull(b.b,a.目标2-1)groupbyb.id,b.lb)a,(selecta=isnull(sum(case性子when00then数目end),0),b=isnull(sum(case性子when01then数目end),0)fromtb)bunionallselect目标1均匀值,,cast(isnull(casewhencount(case性子when00then性子end)>0thensum(case性子when00then目标1end)*1./count(case性子when00then性子end)else0end,0)asdecimal(10,2)),cast(isnull(casewhencount(case性子when01then性子end)>0thensum(case性子when01then目标1end)*1./count(case性子when01then性子end)else0end,0)asdecimal(10,2)),id=6fromtbunionallselect目标2均匀值,,cast(isnull(casewhencount(case性子when00then性子end)>0thensum(case性子when00then目标2end)*1./count(case性子when00then性子end)else0end,0)asdecimal(10,2)),cast(isnull(casewhencount(case性子when01then性子end)>0thensum(case性子when01then目标2end)*1./count(case性子when01then性子end)else0end,0)asdecimal(10,2)),id=26fromtbunionallselect数目算计:,,isnull(sum(case性子when00then数目end),0),isnull(sum(case性子when01then数目end),0),id=30fromtb)aorderbyidgo
--删除测试droptabletb
对于update操作,只需要把event中的旧行和新行值对调即可。 以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了 连做梦都在想页面结构是怎么样的,绝非虚言 外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。 where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。 having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。 是要和操作系统进行Socket通讯的场景。否则建议慎重! 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
页:
[1]