ПОЧЕМУ, почему, почему? Я получаю сообщение об ошибке:Ошибка сводной таблицы
«Msg 325, уровень 15, состояние 1, строка 17 Неверный синтаксис рядом с« PIVOT ». Возможно, вам потребуется установить уровень совместимости текущей базы данных на более высокое значение, чтобы включить эту функцию См. Справку для хранимой процедуры sp_dbcmptlevel. " Для этого запроса?
WITH Offnet7 AS (
SELECT disposition.dispositiondesc, interaction.dispositionid, DATEPART(wk,interaction.ibegintime) as iWeek
FROM interaction INNER JOIN
disposition ON interaction.reasonid = disposition.dispositionid
WHERE interaction.dispositionid = 10 and (reasonid = 20365 or reasonid = 20366 or reasonid = 11168) and
interaction.ibegintime >= '2013-1-1' and
interaction.ibegintime < '2014-1-1'
)
SELECT iWeek, dispositiondesc, count(iWeek) as 'OffnetCounts'
FROM Offnet7
Group by dispositiondesc, iWeek
PIVOT
(
OffnetCounts
for iWeek in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15])
) AS counts
EDIT: «Построение схемы» Пытался сделать SQL скрипку, и он задохнулся, когда я пошел (SQL Noob) Я вытащил типы из объектного проводника студии управления SQL и скопировал некоторые данные примера. Но это то, что я пытался:
CREATE TABLE interaction
([reasonid] int, [dispositionid] int, [ibegintime] datetime)
;
INSERT INTO interaction
([reasonid], [dispositionid], [ibegintime])
VALUES
(20366, 10, '2012-01-31 23:59:48.000'),
(20366, 10, '2012-02-07 14:03:01.000'),
(20366, 10, '2012-02-07 14:06:48.000'),
(20366, 10, '2012-02-13 21:44:10.000'),
(20366, 10, '2012-02-27 21:36:33.000')
;
CREATE TABLE disposition
([dispositionid] int, [predefined] int, [dispositiondesc] varchar(64), [displayvalue] varchar(254))
;
INSERT INTO disposition
([dispositionid], [predefined], [dispositiondesc], [displayvalue])
VALUES
(10, 1, 'TRANSFERRED OFFNET', 'TRANSFERRED OFFNET'),
(11168, 0, 'TAKEDA PASSWORD', 'TAKEDA PASSWORD'),
(15433, 0, 'Voice Mail - TAKEDAEMEA', 'Voice Mail - TAKEDAEMEA'),
(20365, 0, 'TAKEDA iPAD, iPhone or BlackBerry', 'TAKEDA iPAD, iPhone or BlackBerry'),
(20366, 0, 'TAKEDA Concur', 'TAKEDA Concur')
;
Заключение: Спасибо за помощь Bluefeet!
Для всех, кто интересуется этим, его первый ответ БЫЛО работал, если бы уровень совместимости SQL был правильно установлен моим администратором баз данных. После попытки его первый ответ, который я получил:
"Msg 102, Level 15, State 1, Line 19 Incorrect syntax near '('."
Поскольку DBA не имеет SQL Server, сконфигурированный с уровнем совместимости, который поддерживает оператор PIVOT.
Я до сих пор получаю «Msg 102, Level 15, State 1, Line 19 Некорректное Синтаксис near '('. "Ошибка в этом? Насколько я могу судить, это выглядит нормально? (Я SQL noob, хотя.) – NoMoreZealots
@NoMoreZealots Можете ли вы создать скрипт sql с некоторыми примерами данных? – Taryn
Если это так, синтаксическая ошибка заключается в том, что поможет? – NoMoreZealots