有如下sql语句
if object_id('tempdb..#temptable')>0
drop table #temptable
select * into #temptable
from (select proposalno,MedItemDesc
from gcnewbiz..uwrmedical where carriercode='S' union
select proposalno ,FollowupDesc
from gcnewbiz..uwrfollowup f where carriercode='S' 
      )tmpselect top 300 l.policyno , l.pkgCode ,l.TotalAnnprem ,l.proposalno 
from gcdata..Lpolicy l left outer join  
(select proposalno, MedItemDesc=stuff((select ' '+MedItemDesc+' ' from #temptable t where t.proposalno=#temptable.proposalno for xml path('')), 1, 0, '') 
from #temptable 
group by proposalno 
)temp
on l.proposalno=temp.proposalno怎么可以不用临时表 #temptable 直接实现临时表下面的语句select top 300 l.policyno ........

解决方案 »

  1.   

    select top 300 l.policyno , l.pkgCode ,l.TotalAnnprem ,l.proposalno 
    from gcdata..Lpolicy l 
    left outer join  
     (select proposalno, MedItemDesc=stuff((select ' '+MedItemDesc+' ' 
                                            from 
                                              (select proposalno,MedItemDesc 
                                               from gcnewbiz..uwrmedical 
                                               where carriercode='S' 
                                               union 
                                               select proposalno ,FollowupDesc 
                                               from gcnewbiz..uwrfollowup f 
                                               where carriercode='S' 
                                              ) b
                                            where a.proposalno=b.proposalno for xml path('')), 1, 0, '') 
      from 
        (select proposalno,MedItemDesc 
         from gcnewbiz..uwrmedical 
         where carriercode='S' 
         union 
         select proposalno ,FollowupDesc 
         from gcnewbiz..uwrfollowup f 
         where carriercode='S' 
          ) a
      group by proposalno 
     ) temp 
    on l.proposalno=temp.proposalno