2017-02-16 4 views
1

次のクエリは2つの行を返します。私はこれらの2つの行を結合したいと思います。これは可能ですか?このロジックは、後で別のクエリの列の一つとなるであろう:クエリによる結果の返り値を1つの文字列に結合する - SQLサーバー

select SUM(case 
     when FreeRentMonth = 'Y' 
      then 1 
     else 0 
     end) as months 
from LARBICRMFact 
where rlm_spaceID in (
    select RefCRMSpaceID 
    from #OneAE_Multiple_CRM_deals fs 
    where fs.RefLeaseAssumptionID = '58500-TSPECTENB-LSPECTENB-0210' 
    ) 
group by rlm_spaceID 

所望の結果:
6 |(二つの別々の行にある代わり6及び7)7

注*:サブクエリは、1つ以上の値を返すことができます。

+1

ない私の答えが、http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-をチェックアウト文字列 – AndrewP

答えて

2

行を列に変換するには、値rlm_spaceIDを知る必要があります。

値6と7は、rlm_spaceID "value1"と "value2"であるとします。

rlm_spaceID months 
value1  6 
value2  7 

このような何か:

select SUM(case 
      when rlm_spaceID = 'value1' 
       and FreeRentMonth = 'Y' 
       then 1 
      else 0 
      end) as val1, 
    SUM(case 
      when rlm_spaceID = 'value2' 
       and FreeRentMonth = 'Y' 
       then 1 
      else 0 
      end) as val2 
from LARBICRMFact 
where rlm_spaceID in (
     select RefCRMSpaceID 
     from #OneAE_Multiple_CRM_deals fs 
     where fs.RefLeaseAssumptionID = '58500-TSPECTENB-LSPECTENB-0210' 
     ); 
+0

問題は、サブクエリによっていくつのrlm_spaceIDが返されるかがランダムであることです。それは1または10まで可能性があります。私のためにこれを行うことができる作成することができる関数はありますか? – NonProgrammer

+0

結果を1行1列にしたいですか?または1つの行と別の列?最初のものを容易に達成することができます。 – GurV

+0

正しいですが、結果を1行1列にしたいと思います。しかし、別のselect文から行レベルでRefLeaseAssumptionIDを渡しています。これは、そのselect文の列になります。 – NonProgrammer