Я был на этой проблеме в течение нескольких дней без какого-либо успеха. Любая помощь будет благодарна.
Я использую динамический Pivot, который работает при запуске в SQL, однако, когда я пытаюсь выполнить этот запрос в PHP, я получаю следующую ошибку.
Предупреждение: mssql_query () [function.mssql-query]: сообщение: неверно
синтаксис рядом с ‘,’. (серьезность 15) в XXXXX
Я сузил это до того, как я строю переменную в SQL. Хотя это работает в SQL, PHP как проблема с ним. Я проверил это, определив переменную как SELECT @ColName = '[GEN1.1], [GEN2.2]'
который работает. Я также попытался использовать цикл for для создания массива, который не работал.
SELECT @ColName = ISNULL(@ColName + ', ','') + QUOTENAME(GEN)
Может кто-нибудь помочь с этим? Благодарю.
Пример моих данных и SQL-запроса ниже.
DECLARE @ColName AS NVARCHAR(MAX);
SELECT @ColName = ISNULL(@ColName + ', ','') + QUOTENAME(GEN)
FROM (SELECT DISTINCT GEN FROM TB) AS Gens
SET @DPQ = N'SELECT STAGE, ' + @ColName + '
INTO #TB2
FROM (see below)
PIVOT (SUM(QTY)
FOR GEN IN (' + @ColName + '))
AS PVTTable
ORDER BY STAGE'
EXEC sp_executesql @DPQ
Таблица
Stage GEN QTY
A GEN1.1 50
A GEN2.2 125
A GEN2.2 75
C GEN1.1 100
C GEN2.2 25
D GEN1.1 199
D GEN2.2 50
Задача ещё не решена.
Других решений пока нет …