У меня есть этот код работать:Как установить локальную переменную на конкретное значение в наборе результатов?
SELECT TOP 1 COUNT(*) AS NumSold, Game.Title
FROM Game JOIN Purchase ON Game.GameID = Purchase.GameID
GROUP BY Game.Title
ORDER BY NumSold DESC ;
Я хочу, чтобы сохранить GameID верхнего ряда к переменной.
Я пробовал это, но, похоже, не могу получить Идентификатор игры «игры» с самыми «закупочными» строками. Я могу подсчитать количество покупок в разных играх, когда я переключаю переменные из отчаяния.
SET @BestSellerID = (SELECT TOP 1 COUNT(Game.GameID) AS Best
FROM Game JOIN Purchase ON Game.GameID = Purchase.GameID
ORDER BY Best DESC
);
Я попытался ВЫБЕРИТЕ путь слишком (НЕПРАВИЛЬНО СИНТАКСИС NEAR TOP):
DECLARE @BestSellerID int;
SELECT @BestSellerID = TOP 1 COUNT(Game.GameID) AS NumSold, Game.Title
FROM Game JOIN Purchase ON Game.GameID = Purchase.GameID
GROUP BY Game.Title
ORDER BY NumSold DESC ;
Разве это не возможно, потому что нет никакого способа, чтобы получить скалярный результат? Может кто-нибудь, пожалуйста, объясните мне, как получить переменную из набора результатов? Есть ли какая-то концепция, которую я пропускаю, есть ли специальный способ «поговорить» с запросами после того, как они были запрошены? Спасибо.
ОК с помощью пользовательского tshoemake и возится с синтаксисом это фиксированная моя проблема:
DECLARE @BestSellerID int;
with cte_bs as
(
SELECT TOP 1 COUNT(Game.GameID) AS NumSold, Game.GameID
FROM Game JOIN Purchase ON Game.GameID = Purchase.GameID
GROUP BY Game.GameID
ORDER BY NumSold DESC
)
select @BestSellerID = (SELECT cte_bs.GameID FROM cte_bs)
select @BestSellerID AS BestSellerGameID;
ошибка синтаксиса около «сверху» Но если код изменения не назначать: выберите top 1 cte.GameID из cte; Я получаю правильный GameID! Но это не позволит мне назначить переменную – MrPickles7
Попробуйте это: set @BestSellerID = выберите top 1 cte.GameID from cte. Я также внесли некоторые изменения в исходный ответ, вы тоже захотите включить это. – tshoemake
Все еще получать синтаксические ошибки из точки с запятой после DESC и установки var, существует ли другой синтаксис для выражений cte? – MrPickles7