有两张表A、B,A为保存每条记录,B保存记录的明细表,之间的关系A1=B1。举个例子,假如A是保存购书记录——列号、时间A2、数量A3、金额A4等,B是保存列号B1、书名B2、数量B3等信息。
现在我做的一个查询:
select A1,A2,XX from A,B where A.A1=B.B1 and B.B2='书名'在这个查询语句里,XX代表是另外一个查询。这个查询是一个记录集,我想将它转成一个字段值(字符串)显示在上边的查询中,请问有什么方法可做到?我试过使用双游标就可以解决,如果数据集量大一些,那这个会好慢。请问有没有好一点的方法?谢谢各位!

解决方案 »

  1.   

    TO二楼:这个查询的目的是(以购书为例说明)搜索一本书的购书记录,搜索出来要显示记录表A的列号A1、A表的时间A2、记录明细表B的书名+数量(这一字段是要把搜索出来的记录集转成字符串)。
    select A1,A2,XX from A,B where A.A1=B.B1 and B.B2='书名' 
    例如:
    一本书B0001,分了四种类型,代码分别为B00011,B00012,B00013,B00014,那么当去买书时,你可能只买了四类中的一个或几个,不唯一。
    假如我搜索出来的结果是如下:
    [2009061109470001](列号A1),[2009-06-11](时间A2),[B00011-1(B00011一本),B00012-2(B00012两本)](XX列名)XX列的查询语句:select B1,sum(B2) from B where B1='B0001'。这个查询语句出来不一定只一条记录另外要补充一点,还有一张表,是保存书名与代码的,如C1——书代码(B0001),C2——书名称。
      

  2.   


    select A1,A2,C.***** 
    from A,B,(另一個查詢) C 
    where A.A1=B.B1 and 
          B.B2='书名' and
          A.字段=C.字段 .....
      

  3.   

    这个查询语句里的C表,如果是只有一个记录,那就可以显示出来,但如果是一个集合D,那就会变成D有多少记录,就添加成一条记录,而不是我想的了!
      

  4.   

    那你就對結果集再進行合併字符串呀.這種方法精華帖有很多.
    http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html?61024