爱飞 发表于 2015-1-16 22:39:45

MSSQL网站制作之统计不流动栏目标人为年报的存储历程

对于update操作,event中依次记录旧行,新行的值。存储历程|统计
本存储历程乐成完成行列转换统计

人为数据是竖表,即一个员工的人为对应多条人为栏目标纪录

createorreplaceprocedureprc_rs_gzndbb(p_tableinvarchar2)is
/*===================================================================================================
称号:prc_rs_gzndbb(procedure)
参数:传进:p_tablevarchar2
挪用:PRC_YD_SHTZTJYH前往:
功效:统计员工人为发放年度报表
前往:把统计了局拔出p_table表中

编写工夫:2005-2-21
修正人:
修正内容:
修正工夫:
=====================================================================================================*/
v_lmmcvarchar2(20);--栏目称号
v_sqlvarchar2(1000);
--界说取人为栏目标游标
cursorcur_lmmcis
selectdistinctlmmc
FROMtmp_gztjlsb;
begin
--界说静态SQL
v_sql:=selectrydm,xm;
--遍历人为栏目并拼写成拔出的SQL
forcur_lmmc_recincur_lmmcloop
v_lmmc:=cur_lmmc_rec.lmmc;
v_sql:=v_sql||,||sum(decode(lmmc||,||v_lmmc||,je))||||v_lmmc;
endloop;
v_sql:=v_sql||fromtmp_gztjlsbgroupbyrydm,xm;
executeimmediateinsertinto||p_table||||v_sql;
commit;
endprc_rs_gzndbb;

这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。

深爱那片海 发表于 2015-1-19 20:53:49

其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!

谁可相欹 发表于 2015-1-27 17:06:15

分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。

海妖 发表于 2015-2-5 10:19:16

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

山那边是海 发表于 2015-2-11 08:53:12

习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。

精灵巫婆 发表于 2015-3-2 07:45:22

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

admin 发表于 2015-3-11 02:41:56

学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了!

愤怒的大鸟 发表于 2015-3-17 19:10:51

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

透明 发表于 2015-3-24 21:37:38

如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
页: [1]
查看完整版本: MSSQL网站制作之统计不流动栏目标人为年报的存储历程