Dee*_*dhy 0 sql sql-server coldfusion sql-server-2008 qoq
我正在使用ColdFusion和SQL设计报告.这个reprot有3个部分.现在,所有3个部分都使用相同的数据集,但以不同方式对其进行操作以显示不同的结果.我已经使用过CTE了.我已经为3个部分写了3个quires.
WITH allOrders AS(
Main query[With a lot of Joins]
)
SELECT [Manupulated_Resultset_1]
FROM allOrders
WITH allOrders AS(
Main query[With a lot of Joins]
)
SELECT [Manupulated_Resultset_2]
FROM allOrders
WITH allOrders AS(
Main query[With a lot of Joins]
)
SELECT [Manupulated_Resultset_3]
FROM allOrders
Run Code Online (Sandbox Code Playgroud)
因此,对于这三个部分,它对数据库进行了3次访问,对于所有情况,主查询保持相同,只有子查询更改.我知道这可以用更好的方式完成.所以我需要一种方法来存储主查询结果一次,然后使用它来获得不同的操作结果.
我不能在ColdFusion中使用查询查询来获取操作结果集,它涉及QOQ不支持的大量操作.
那么在SQL中有什么办法吗?
创建存储过程,使用临时表存储结果,main query然后一次性将多个结果集返回给客户端:
create procedure proc_name
as
set nocount on
;with allOrders as (
Main query[With a lot of Joins]
)
select *
into #allOrders
from allOrders;
SELECT [Manupulated_Resultset_1]
FROM #allOrders;
SELECT [Manupulated_Resultset_2]
FROM #allOrders;
SELECT [Manupulated_Resultset_3]
FROM #allOrders;
GO
Run Code Online (Sandbox Code Playgroud)
http://www.adobe.com/devnet/coldfusion/articles/stored_procs.html
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |