У меня есть таблица лиги отображается ниже, где все команды играли друг с другом:Если оператор с использованием счета
Основываясь на их LeagueID, я хочу, чтобы определить, что если количество игр достигло БОЛЬШЕ, чем его предел, затем поднимите ошибку, говоря «сезон закончен».
Я немного потеряю заявление IF и нуждаюсь в небольшой помощи в том, как это определить. Я хочу сказать в приведенном ниже примере, что если будет сыграно больше игр, чем 22, поднимите ошибку, но я не хочу использовать фиксированное значение 22, поскольку мне нужно притворяться, что лига может быть расширена в какой-то момент в будущем с большим количеством команд.
Как это можно сделать? В настоящий момент расчет подсчитывает все команды за лигу, умножается на 2, чтобы определить дом и прочь, а затем минус 2, так как каждая команда не играет сама.
CREATE PROCEDURE [dbo].[League_Table_Insert]
@LeagueName VARCHAR(30)
AS
SET NOCOUNT ON
BEGIN
DECLARE @LeagueID INT
DECLARE @TotalMatches INT
SELECT
@LeagueID = LeagueID FROM dbo.League
WHERE LeagueName = @LeagueName
SELECT [Position], [TeamName], [Played], [Wins], [Loss], [Draws], [Points], [Goals_Scored], [Goals_Against], [Goal_Difference], [LeagueID]
FROM League_Table
WHERE LeagueID = @LeagueID
ORDER BY Points DESC, Goal_Difference DESC;
--select [Position], [TeamName], [Played], [Wins], [Loss], [Draws], [Points], [Goals_Scored], [Goals_Against], [Goal_Difference], [LeagueID] from League_Table
SELECT @TotalMatches = SUM(COUNT(*) * 2 - 2) FROM dbo.League_Table WHERE LeagueID = @LeagueID
IF >=
BEGIN
RAISERROR('season finished', 16, 1);
RETURN;
END
END
Почему вы хотите поднять это как ошибка, а не показывать ее как предупреждение. Может не иметь значения для вашего вопроса, но все же –
Почему бы не передать максимальное значение в хранимую процедуру и не установить его в файле конфигурации или что-то еще? –
Я просто использую его, чтобы знать, что заявление работает. В дальнейшем я буду изменять ошибку в инструкции обновления. Вместо ошибки это будет утверждение обновления, чтобы установить все проигранные, точки, разницу мячей и т. Д. Назад 0 –