hur.cn - 华软网

 热门搜索

第一次做数据窗口的数据源用存储过程的数据窗口,请各位指教,谢谢啦!

  作者:未知    来源:网络    更新时间:2018/6/13
CREATE PROCEDURE hztj
@dt1 datetime,@dt2 datetime,@dt3 datetime
 AS
declare @d_order_pbsl numeric(10,2),@d_order_dhsl numeric(10,2),@m_order_pbsl numeric(10,2),@m_order_dhsl numeric(10,2)
set @d_order_pbsl=( select sum(order_mx.pbsl) from order_main,order_mx   where order_mx.no = order_main.id and order_main.kdrq >=@dt1 and order_main.kdrq < @dt2 )
set @d_order_dhsl=(select sum(order_mx.yhsl) from order_main,order_mx where order_mx.no = order_main.id and order_main.kdrq>=@dt1 and order_main.kdrq  <@dt2)
set @m_order_pbsl=(select sum(order_mx.pbsl) from order_main,order_mx where order_mx.no = order_main.id and order_main.kdrq>=@dt2 and order_main.kdrq  <=@dt3)
set @m_order_dhsl=(select sum(order_mx.yhsl) from order_main,order_mx where order_mx.no = order_main.id and order_main.kdrq>=@dt2 and order_main.kdrq  <=@dt3)
GO
1、将上述存储过程中的变量显示到数据窗口中,要怎样实现?
2、我在做数据窗口时增加了四个相同的变量,这样能显示出来吗?
3、存储过程用参数,在数据窗口检索时,是否可以用下面格式,dw_1.retrieve(d1,d2,d3)?
------华软网友回答------
up

------华软网友回复------
在數据窗口中使用存儲過程做數据源時,并不是所有存儲過程都可以的.它需要存儲過程有一個游標型的傳出參數,不然DW怎么可能得到數据?
SQL Server我沒有用過,所以不知道應該怎么給你實例.
------华软网友回复------
SP要返回结果集(记录集),才能作为DW的数据源.
------华软网友回复------
同意楼上!
------华软网友回复------
先谢谢各位。但请问要怎么返回呢?有没有实例供参考一下呢?

------华软网友回复------
CREATE PROCEDURE hztj
@dt1 datetime,@dt2 datetime,@dt3 datetime
 AS
declare @d_order_pbsl numeric(10,2),@d_order_dhsl numeric(10,2),@m_order_pbsl numeric(10,2),@m_order_dhsl numeric(10,2)
set @d_order_pbsl=( select sum(order_mx.pbsl) from order_main,order_mx   where order_mx.no = order_main.id and order_main.kdrq >=@dt1 and order_main.kdrq < @dt2 )
set @d_order_dhsl=(select sum(order_mx.yhsl) from order_main,order_mx where order_mx.no = order_main.id and order_main.kdrq>=@dt1 and order_main.kdrq  <@dt2)
set @m_order_pbsl=(select sum(order_mx.pbsl) from order_main,order_mx where order_mx.no = order_main.id and order_main.kdrq>=@dt2 and order_main.kdrq  <=@dt3)
set @m_order_dhsl=(select sum(order_mx.yhsl) from order_main,order_mx where order_mx.no = order_main.id and order_main.kdrq>=@dt2 and order_main.kdrq  <=@dt3)

--返回结果集合-------------------------
select  @d_order_pbsl ,@d_order_dhsl ,@m_order_pbsl ,@m_order_dhsl 
---------------------------------

GO
------华软网友回复------
这样写更好,用as 加上列名

select  @d_order_pbsl as '列名',@d_order_dhsl as '...',@m_order_pbsl as ...,@m_order_dhsl as ...      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。