0

SQL Server クエリで少し問題が発生しました。私の結果を見ると、列レベル 1 に「レベル 1 活動」というレコードがありますが、実際には「レベル 1 活動、レベル 1 活動 2 番目、レベル 1 活動 3 番目」の 3 つのレコードがあります。私のコマンドMIN(activityName)では、1しか表示されません。

3 つのレコードでそのようなデータを表示する他の方法があるのだろうか?

SELECT 
   strandName as [Strand Name], 
   scopeName as [Scope Name], 
   FoundationLevel as [Foundation Level], 
   Level1 as [Level 1]
FROM 
    (select 
         st.strandName, s.scopeName, l.levelNo, activityName 
     from 
          strands as st 
     inner join 
          scopes as s on st.id = s.strandID 
     left join 
          activities as a on s.id = a.scopeID 
     left join 
          levels as l on a.levelID = l.id where unitID = 2) up 
PIVOT 
     (min(activityName) FOR levelNo IN (FoundationLevel, Level1)) AS pvt 
ORDER BY 
    scopeName

どうもありがとう。

4

1 に答える 1

0
WITH T
     AS (select strandName as [Strand Name] , scopeName as [Scope Name] , FoundationLevel as [Foundation Level] , Level1 as [Level 1]

FROM (select st.strandName, s.scopeName, l.levelNo, activityName from strands as st 

inner join scopes as s on st.id = s.strandID 

left join activities as a on s.id = a.scopeID 

left join levels as l on a.levelID = l.id where unitID = 2) 

SELECT *
FROM   T PIVOT (min(activityName)
FOR levelNo IN (Level 1 activity, Level 1 activity second, Level 1 activity third) ) AS pvt
ORDER  BY OrderID  
于 2013-10-31T06:39:12.210 に答える