存储过程有一个日期类型的参数,首先要根据这个日期从表A中查询出一个结果集aa,然后这个结果集aa根据一定条件和表B进行联合查询,得到结果集bb,最后把bb根据一定条件得到结果集cc,这就是我想要的结果,请问这个存储过程大概需要怎么写?
我的思路是这样的,建两个临时表table1和table2,先把结果集aa插入到table1中,然后联合查询出结果集bb,然后把结果集bb插入到table2中,最后从table2中得到结果集cc,大家感觉这样好吗,或者有什么好的建议吗?
最后得到的结果集是用c#在前台调用,然后绑定到gridview上的

解决方案 »

  1.   

    方法2
    你也可以直接写成SQl 绑定gridview,拼接就好了~! 
    把where条件拼在里面~!
      

  2.   

    那样你不感觉你的sql语句太长了吗,可读性不是很差了吗
      

  3.   


    select ff,fff,ffff from 
      (select fa,fb,fc from
        (select xx,xxx,xxxx from A where x_date = p_date) as aa 
        john B on aa.xx=B.xx
        where B.ba=xxxxx and aa.xx=eeee ) as bb where bb.fa=gggg
      

  4.   

    明明一条SQL可以执行完的操作,何必分3步?临时表啥的根本用不着,你这个需求实在是太简单了。
      

  5.   

    同意ls,多几层查询而已另外Oracle的关键字 : WITH ... AS 可以让你查询好看点。with (
      select * from A
    ) as aa,
    select *
      from B
     where A.Id = B.Id
    ....