您的位置:程序门 -> ms-sql server -> 基础类



具有挑战性的sql 语句你会吗 ?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


具有挑战性的sql 语句你会吗 ?
发表于:2007-09-03 19:01:52 楼主
大虾们您们好,这个问题我不会。。特此求救。。
a(a1,a2,a3,abc)   (主键a1,abc)
b   (b1,b2,b3,abc)       (主键b1,abc)
c   (c1,c2,c3,a1)       (主键c1,外键a1)

要求把a中的a1,a2,b中的b1,b2,c表中的c2同时放到一个临时表#p中去
上述操作是在button1按钮中实现的,即点击button1触发该存储过程
问题的关键是   我还有个button2     它的作用是点击后,临时表中的全部数据
反映到一个控件上   如:fpspread控件,gridview控件等
能够在控件上调出临时表中的数据吗 ?如果不能有什么好方法吗 

(用存储过程实现)
谢谢大虾们光临。再次感谢
发表于:2007-09-03 19:14:501楼 得分:0
select   a.a1,a.a2,b.b2,b.b2,c.c2   into   #p
from   a   inner   join   b   on   a.abc=b.abc   inner   join   c   on   c.a1=a.a1

既然你还有其他动作需要用到#p中的数据,那么建议在button1取得#p时,放到缓存中,然后button2直接可到缓存中取相应的数据,这样效率也会有提高
发表于:2007-09-03 19:42:102楼 得分:0
点击button1的时候触发该存储过程,为了避免麻烦,我把结果也返回了,所以用一个dataset接返回值就好

比如:  
sqldataadapter   da   =   new   sqldataadapter( "EXEC   prco1 ",cnn)
dataset   ds   =   new   dataset
da.fill(ds);

create   proc   prco1
as
select   a1,a2,b1,b2,c2   into   #tmptable   from   a,b,c     where   a.abc   =   b.abc   and   a.a1   =   c.a1
select   *   from   tmptable  
go


然后将ds保存到   viewstate中
viewstate[ "ds "]   =   ds;

点击button2   的时候将viewstate中的ds绑定到gridview
发表于:2007-09-03 19:52:413楼 得分:0
谢谢2位楼上大哥赐教。
如果我想绑定到fpspread控件上,而且绑定全部数据后 还要绑定
d(d1,d2,d3,d4,abc)(主键d1,abc)
中的d2, 和另添加一列用来表示生成日期。(getdate())
我不会用存储过程写出来,希望大家帮我一下,谢谢你们了。最好全面些。 

发表于:2007-09-03 19:58:384楼 得分:0
你把项目发过来,让别人给你完成了,发过去不是更好吗?
发表于:2007-09-04 10:53:595楼 得分:0
路过   ...   jf   hoho
发表于:2007-09-04 17:30:436楼 得分:0
晕倒
发表于:2007-09-04 17:49:187楼 得分:0
/***晕晕晕***/
create   proc   proc_test
as  
    if   object_id( 'temp..# ')   is   not   null
          drop   table   #
    select   a.a1,a.a2,b.b2,b.b2,c.c2   into   #
    from   a   inner   join   b   on   a.abc=b.abc   inner   join   c   on   c.a1=a.a1
go
/*点button1,调用一次存储过程,再点button2,将临时表#的数据返回到你的控件上去就可以了*/
发表于:2007-09-04 18:07:388楼 得分:0
drop   table   #有时会出错的,sql的bug,关闭连接时,临时表会自动删除.
发表于:2007-09-05 15:50:279楼 得分:0
学习~~


快速检索

最新资讯
热门点击