2017-01-10 2 views
3

У меня есть две таблицы, в которых мне нужно присоединиться. Во-первых, заголовки, которые мне нужны, действительно находятся на полях. После долгих игр я понял это ниже. Я был очень взволнован, потому что он бежал, но потом, к моему ужасу, я понял, что у него есть только заголовки из таблицы [GM]. [Dbo]. [PKT]. В нем отсутствуют все поля из таблицы a ([GM]. [Dbo]. [CMPLX]). Как показать поля из таблицы a? Кроме того, я пытался отображать только определенные поля из таблицы p, но это было бы работать, только если бы я сделал - выберите * From в разделе сводной информации.Присоединиться к сводной таблице sql

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; 
+2

Возможно, потому, что вы выбираете из своего стола, а не ваш CTE? то есть 'SELECT * FROM [GM]. [dbo]. [PKT] PIVOT ...' вместо 'SELECT * FROM GM1 PIVOT ...'? – ZLK

+0

Спасибо вам большое! Не могу поверить, что я пропустил это. –

ответ

0

В операторе PIVOT указываются только элементы агрегации и распределения, но не элемент группировки. T-SQL идентифицирует элемент группировки путем исключения. Именно по этой причине мы используем CTE (только три элемента (столбцы)), чтобы использовать PIVOT.
КТР должны иметь только эти элементы:

  1. группировка столбцов ([CMPLX_NBR])

  2. растеканию колонку ([PKT_TYP_CD]),

  3. совокупность столбцов ([PKT_ATTR_CNT ]).

Смежные вопросы