tsql — динамический свод SQL в переполнении стека

Я был на этой проблеме в течение нескольких дней без какого-либо успеха. Любая помощь будет благодарна.

Я использую динамический 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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]