2017-02-16 37 views
1

以下查詢返回兩行。我想結合這兩行。這可能嗎?該邏輯將在後面成爲另一個查詢的列之一:將查詢返回的結果合併爲一個字符串 - sql server

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 | 7(而不是圖6和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_spaceIDs被子查詢返回。它可能是1或最多10.是否有一個我可以創建的函數會爲我做這個? – NonProgrammer

+0

你想在一行和一列中得到結果嗎?或一行和單獨的列?第一個可以很容易地實現。 – GurV

+0

正確,我想在一行和一列中得到結果。但是,我將從另一個select語句的行級傳遞RefLeaseAssumptionID。這可能會成爲該選擇語句上的一個列。 – NonProgrammer

相關問題