我要查询表A的所有记录,在查询中增加B表的查询结果,B表为很多表,B表名对应在A表的字段a中,条件在A表的字段b中(A.b=B.ID)。例 A表
  字段a  字段b  字段c
  tab1     50    ...
  tab2     60    ...
  tab1     45    ...
  tab3     55    ...  B表(tab1)
  ID   VAL1  VAL2
  45   100   125
  50   135   125  B表(tab2)
  ID   VAL1  VAL3
  60    124  135
  65    114  128
  60    45   38
   ...  ...    ...  B表(tabN)
  ...  ...   ...希望查询结果
A表
 字段a  字段b 字段c  结果
 tab1    50    ...   VAL1=135 VAL2=125
 tab2    60    ...   VAL1=124/45 VAL3=135/38   (在tab2中可能有2条结果记录,组合结果)
 tab1    45    ...   VAL1=100 VAL2=125
 tab3    55    ...   ...  描述
 SELECT * ,(SELECT  "VAL1=" + VAL1+"VAL2=" + VAL2  FROM tableName(A.a) where A.b=ID ) as 结果 FROM A求助!是否只能在存储过程中实现?

解决方案 »

  1.   

    把条件查询出来放在一个SQL语句中,然后动态执行.大致为:declare @sql as varchar(100)select @sql = 字段c from a where ...set @sql = 'select .... ' + @sql exec(@sql)
      

  2.   


    --求助!是否只能在存储过程中实现?
    t-sql也OK,不是一定要在存储过程里啊
      

  3.   

    我就想用t-sql
     SELECT * ,(SELECT "VAL1=" + VAL1+"VAL2=" + VAL2 FROM tableName(A.a) where A.b=ID ) as 结果 FROM A
    但 tableName(A.a) 在t-sql中要求为对象。。