sql存储过程报表
insert into 你的临时表(字段1,字段2,......)
exec rpt_pos_colligate_query ....
语法就这样,要先创建这个表,字段要对齐
‘贰’ 如何在sql2008中建立存储过程,要求输入年月,输出该月库存盘点报表
create proc report @date as datetime
as
select * from 库存盘点报表 where 年月=@date
‘叁’ SQL 存储过程和在存储过程中创建临时表
建立临时表只是在表的前面加一个#,其它都舆建立实表相同,建立过程我相信你都知道了,就不用我多说了
Egg:
create table #temp
(id int,
name varchar(50)
)
‘肆’ 求一个月份报表的sql存储过程,好的答案,加分的!谢谢!
你那个基础表的结构图是什么样的啊,没说明清楚不能做的,有QQ没,加个好聊天
‘伍’ SQL存储过程有什么好处
优点:
离数据最近,某些情况下可获得更好性能
减少应用复杂度及应用服务器压力
需要显式调用,不会像触发器那样出现问题难以定位
使用方便
缺点:
增加数据库服务器压力。相当于将应用压力转嫁到数据库上,而应用服务器更容易扩展,也就是说大部分情况下数据库服务器资源比应用服务器资源更加珍贵。
增加网络开销。如存储过程存取数据量较大,会造成较大网络开销。
可移植性差。如系统有多中数据库,或从某种数据库迁移到另一种数据库,则很有可能遇到兼容性问题。
导致多处存在业务逻辑。存储过程某种程度就是将本应放在应用侧处理的业务逻辑放到数据库处理,这会导致业务逻辑存在于多个地方,增加调试维护困难。
在高并发系统中很可能会导致数据库压力瞬间增大。
存储过程中的复杂运算会大量消耗数据库服务器资源。
总结:
一般情况下尽量少用或不用存储过程,特别是在一个并发较高架构复杂的大型系统中,更是要减少存储过程的使用,业务逻辑的工作就应该由应用服务器处理,而不是交给数据库。很多时候存储过程确实可以快速解决问题,但它的维护性、扩展性、移植性等都不好。如果你的系统很小,架构比较简单,并且开发人员对存储过程熟悉,那么可以考虑使用存储过程减少工作量;但随着系统增加,架构变复杂,开发人员越来越多,这时存储过程的存在可能会导致更多的问题。当然,定时ETL或报表统计之类的任务,还是可以考虑使用存储过程来做的。
‘陆’ SQL 存储过程生成报表
导出报表到excel:
先建存储过程,查出结果。
再用DTS调用该存储过程,将结果到出到服务器的excel表格
再建作业,设定自动调度的频率。
在界面显示:
先建存储过程
程序中调用该存储过程,返回结果集
按照规定的方式将结果集显示在界面中
‘柒’ sql数据汇总一张表 用sql语句或存储过程怎么写
各公司的表是不同的名称,没有规律是吧?
如果有规律比如table1、table2……方便多了。
在存储过程中,直接利用循环,查询各表中的数据,累加到一个临时数值上,然后将该数值插入到汇总表。具体实现,不同的数据库有细微差别。
如果是没有规律的,则需要将各表名作为存储过程参数,比如用传入字符串table1|table2|……|tablexxx|
然后在存储过程中,解析该字符串,之后循环查询。
存储过程其实和c语言编程等编程语言实现语义上没有多大区别,逻辑清楚了,多看几个示例,就会弄了。
如果不想存储过程,也可以用触发器,在每张表上建一个触发器,将所有记录更新到汇总表。或者直接用视图,将各表的结果直接汇总select
isnull(a.期初数,0)
+
isnull(b.期初数,0)
+
……
总期初数
from
table1
a
left
join
table
2
b
on
a.年=b.年
left
join
……
where
a.年='2011'
