【问题标题】:I got abit trouble with SQL Server PIVOT我在使用 SQL Server PIVOT 时遇到了麻烦
【发布时间】:2013-11-11 01:27:10
【问题描述】:

我在使用 SQL Server 查询时遇到了一些问题。您可以在我的结果中看到,在第 1 列,有一条记录“第 1 级活动”,但实际上有 3 条记录“第 1 级活动,第 1 级活动第二,第 1 级活动第三”。使用我的命令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

非常感谢。

【问题讨论】:

  • 您可以使用枢轴从带有 IN 的记录创建列

标签: sql-server pivot max min


【解决方案1】:
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  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2022-01-05
    • 2021-06-06
    • 2017-08-25
    相关资源
    最近更新 更多