我有两个需要联接的表。第一,我需要的标题实际上在字段中。经过大量的游戏,我在下面找到了这个。我真的很兴奋,因为它正在运行,但是令我沮丧的是,我意识到它只有表[GM]。[dbo]。[PKT]中的标题。它缺少表a([GM]。[dbo]。[CMPLX])中的所有字段。如何显示表a中的字段?另外,我尝试仅显示表p中的某些字段,但只有在这样做的情况下才有效-在数据透视部分中选择* From。

With GM1 AS (
Select TOP 10 a.[CMPLX_NBR],
  a.[SYSTEM_ID],
  a.[PKT_TYP_CD],
  a.[CATEG_CD],
  a.[SUPPLR_CD],
  a.[TRANS_CD],
  a.[PRIORITY_INT],
  a.[PRIORITY_INT_EXPR_DT],
  a.[RQSTR_NBR],
  a.[TMSTMP],
p.[PKT_DTTM]
FROM [GM].[dbo].[CMPLX] as a
INNER JOIN [GM].[dbo].[PKT] as p
ON a.[CMPLX_NBR] = p.[CMPLX_NBR]
)

SELECT *
FROM [GM].[dbo].[PKT]
PIVOT (
    sum([PKT_ATTR_CNT])
        For [PKT_ATTR_CD]
        IN (not_sent, not_sent, other, appl, avg, max, min, sum, sent, why)
        )AS GM1Pivot;

最佳答案

在PIVOT运算符中,我们仅指示聚集和扩展元素,而不指示分组元素。 T-SQL通过消除来标识分组元素。这就是为什么我们在使用PIVOT之前使用CTE(仅3个元素(列))的原因。
CTE应该仅包含以下元素:

  • 分组列([CMPLX_NBR])
  • 传播列([PKT_TYP_CD]),
  • 聚合列([PKT_ATTR_CNT])。
  • 关于sql - 加入数据透视表SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41578759/

    10-09 17:39
    查看更多