Я попытался переписать приведенный ниже запрос, чтобы он работал на странице PHP, но я не смог найти какой-либо документации о том, как использовать оператор «; WITH» в PHP или как сделать тот же эффект с действительным PHP-запросом. Запрос отлично работает при выполнении в MS SQL 2008 R2 Management Studio, но выдает ошибки при попытке загрузить его в MSSQL PHP Generator из SQLMaestro.
Запрос:
;WITH UserStars AS
(
SELECT a.username, ROUND(AVG(CAST(b.stars AS FLOAT)),1) Stars
FROM score b
JOIN game_users a ON a.id = b.game_users_id
GROUP BY a.username
)
SELECT CASE WHEN Stars < 1.4 THEN 'StarAmount1'
WHEN Stars BETWEEN 1.4 AND 2.4 THEN 'StarAmount2'
WHEN Stars BETWEEN 2.4 AND 3.4 THEN 'StarAmount3'
WHEN Stars BETWEEN 3.4 AND 4.4 THEN 'StarAmount4'
WHEN Stars BETWEEN 4.4 AND 5.0 THEN 'StarAmount5' ELSE 'AnotherStarAmount' END StarAmount,
COUNT(*) Users
FROM UserStars
GROUP BY CASE WHEN Stars < 1.4 THEN 'StarAmount1'
WHEN Stars BETWEEN 1.4 AND 2.4 THEN 'StarAmount2'
WHEN Stars BETWEEN 2.4 AND 3.4 THEN 'StarAmount3'
WHEN Stars BETWEEN 3.4 AND 4.4 THEN 'StarAmount4'
WHEN Stars BETWEEN 4.4 AND 5.0 THEN 'StarAmount5' ELSE 'AnotherStarAmount' END
Может ли кто-нибудь указать мне правильное направление, чтобы один и тот же запрос мог использоваться как в PHP, так и в студии управления MS SQL 2008 R2?