Результаты Pivot/Cross вкладки в PHP/SQL-запрос

Запуск последней версии PHP при самой последней версии WAMPserver.

База данных - SQL Server 2005

Вот запрос, который я сейчас выполняю, который работает. Я хочу изменить результат:

CorrectionsCount , Employee , Date 
1 , Joe , 02/12/2012
31 , Barbara , 02/13/2012 
12 , Paula , 02/16/2012

Что-то вроде этого

[EMPLOYEE NAME], 02/12/2012, 02/13/2012, 02/16/2012 
Joe , 31 , 0 , 0 
Barbara , 0 , 31 , 0 
Paula , 0 , 0 , 12

Код:

$ thedate1 и $ thedate2 являются переменными, которые отправляются на эту страницу с помощью сборщика календаря с другой страницы PHP.

UPDATE: я попытался запустить функцию COALESCE, описанную ниже, но она генерирует синтаксическую ошибку рядом с ключевым словом "FROM" (второй экземпляр "FROM" в этом утверждении). Правильно ли я ввожу его?

$DP2connect = odbc_connect("dp2_database", "DP2", "DP2Express!") or die ("Could not connect to 

server");

$DP2query = 
"WITH T 
AS(
 SELECT CorrectionUser, CorrectionsCount, DateHourCorrected
 FROM ISIImageCorrections
)
SELECT CorrectionUser, 
 COALESCE([02/12/2012], 0) AS [02/12/2012],
 COALESCE([02/13/2012], 0) AS [02/13/2012],
 COALESCE([02/16/2012], 0) AS [02/16/2012],
FROM T
PIVOT(SUM(CorrectionsCount) FOR [Date] IN([02/12/2012], [02/13/2012], [02/16/2012])) AS P";


$DP2result2 = odbc_exec($DP2connect, $DP2query);

odbc_result_all($DP2result2, 'id="results"');
1 ответ

Здесь я использую SUM, выбираю любую совокупную функцию по своему вкусу:

WITH T AS(
 SELECT Employee, CorrectionsCount, [Date]
 FROM @yourTable
)
SELECT Employee, 
 COALESCE([02/12/2012], 0) AS [02/12/2012],
 COALESCE([02/13/2012], 0) AS [02/13/2012],
 COALESCE([02/16/2012], 0) AS [02/16/2012]
FROM T
PIVOT(SUM(CorrectionsCount) FOR [Date] 
 IN([02/12/2012], [02/13/2012], [02/16/2012])) AS P;

licensed under cc by-sa 3.0 with attribution.