2014-10-29 2 views
0
SELECT 
    RNAME, 
    [4] AS Apr, 
    [5] AS Mai, 
    [6] AS Jun, 
    [7] AS Jul, 
    [8] AS Aug, 
    [9] AS Sep, 
    [10] AS Oct 
    FROM 
(Select 
RNAME, 
BILLAMT, 
DATEPART(mm,DATE1) as TMonth 
    from 
    #temp 
PIVOT 
(
    SUM(BILLAMT) 
    FOR TMonth 
    IN ([4],[5],[6],[7],[8],[9],[10]) 
)AS pvtMonth 

это мой запрос. я получаю ошибку в этом запросе.PIvot запрос на месяц wise sql server2008

Мне нужно показать ежемесячную стоимость счета за rname. PLS помочь узнать об ошибке. Неверный синтаксис рядом с 'pvtMonth'. это - структура таблицы

rname | billamt | date1 | aaa | 400 | 1-04-2014 | bbb | 200 | 23-3-2014 | bbb | 500 | 12-04-2014 |

| 100 | 1-04-2014 |

Мне нужно вот так name | mar | Апр aaa | 400 | 0 bbb | 200 | 500 | 0 | 100

+0

Какой ошибки вы получаете? Мы можем помочь вам лучше, если вы дадите более подробную информацию. – Mych

+0

Неверный синтаксис рядом с 'pvtMonth'. – Indrah

+0

предоставляют некоторую скрипту –

ответ

0

попробовать это у пропущенного близко брекет и имени псевдонима для inner query

SELECT RNAME, 
     [4] AS Apr, 
     [5] AS Mai, 
     [6] AS Jun, 
     [7] AS Jul, 
     [8] AS Aug, 
     [9] AS Sep, 
     [10] AS Oct 
FROM (SELECT RNAME, 
       BILLAMT, 
       Datepart(mm, DATE1) AS TMonth 
     FROM #temp) a -- this is what u missed 
     PIVOT (Sum(BILLAMT) 
      FOR TMonth IN ([4], 
          [5], 
          [6], 
          [7], 
          [8], 
          [9], 
          [10]))AS pvtMonth 
+0

, она показывает ошибку, если в таблице нет месяца. есть ли способ избежать этого? он должен показывать null, если нет значения. Является ли это возможным? – Indrah

+0

@Indrah - нужно преобразовать это в динамический стержень. –

+0

@ Индра - вставьте точную ошибку, которую вы получили !! –

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