【问题标题】:Combining resultsets组合结果集
【发布时间】:2013-04-09 13:27:12
【问题描述】:

我需要合并两个结果集:

--Resultset from Procedure 1
Date    Session Attendees
2013-04-09  Morning 2
2013-04-09  Noon    6

--Resultset from Procedure 2
Session Admitted
Morning 1
Noon    3

我需要合并两个过程的结果集。请提出一些方法,以便最终结果集如下所示:

--Date  Session Attendees   Admitted
2013-04-09  Morning 2   1
2013-04-09  Noon    6   3

我正在尝试这种方式,但它不起作用。请纠正我:

创建过程 test1_test2_combine()

开始

 DECLARE @tmp_proc1 TABLE
 DECLARE @tmp_proc2 TABLE

  Call test1() ;
 INSERT INTO @tmp_proc1 
  Call test2() ;
 INSERT INTO @tmp_proc2


 Select @tmp_proc1.*, @tmp_proc2.Admitted from @tmp_proc1, @tmp_proc2
 Where @tmp_proc1.rownum = @tmp_proc2.rownum;

结束

基本上我要做的是,从两个过程中获取结果集并插入两个临时表并使用 rownum 组合它们。请指教。在此先感谢,克里希纳

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    要获得所需的结果集,您需要加入这些主要结果集。这意味着,您可能会想到类似:

    SELECT * FROM (CALL test_select_users) AS 'result1'
    

    加入:

    SELECT * FROM (CALL test_select_users) AS 'result2'
    

    但是,这是不可能的。 相反,您可以使用User-defined functionview 代替过程。

    一个过程可以返回多个结果集,每个结果集都有自己的模式。它不适合在 SELECT 语句中使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-24
      • 2021-01-18
      • 2011-05-30
      • 1970-01-01
      • 2016-07-19
      • 2019-07-26
      • 1970-01-01
      相关资源
      最近更新 更多