Я хочу, чтобы из этого гнезда аргумента case я хотел получить 2 значения, поэтому я могу вставить их в таблицу результатов для проверки совпадений, затем обновляю результаты из таблицы #game
. Я установил обновление как часть оператора select. я получаюКак я могу получить вложенные аргументы аргументов, чтобы возвращать значения
недействителен ошибка колонки
на standard_matches
и bonus_match
. Затем я попытаюсь получить значение после аргумента case и с той же ошибкой. Это код аргумента case.
BEGIN --
-- update #game set gwn = standard_matches ,gsn = bonus_match from
-- where gameno = 1
-- from
SELECT
@Ball1 AS Ball1,
@Ball2 AS Ball2,
@Ball3 AS Ball3,
@Ball4 AS Ball4,
@Ball5 AS Ball5,
@Ball6 AS Ball6,
standard_matches
bonus_match
from #draws
CROSS APPLY
(SELECT
CASE WHEN Winningball1 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 end +
CASE WHEN Winningball2 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 ENd +
CASE WHEN Winningball3 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 END +
CASE WHEN Winningball4 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 END +
CASE WHEN Winningball5 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 END +
CASE WHEN Winningball6 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 END as standard_matches,
CASE WHEN Bonusball1 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 END +
CASE WHEN Bonusball2 IN (@Ball1, @Ball2, @Ball3, @Ball4, @Ball5, @Ball6) THEN 1 END as bonus_match
) AS ca1
set @sm = standard_matches
set @bm = bonus_match
update #game set gwn = @sm ,gsn = @bm where gno = 1
end
Спасибо за ваш ответ, я все равно получаю ошибочное недопустимое имя столбца для standard_matches и bonus_match в операциях select и update. аргумент case может видеть столбец как int – Gary
, можете ли вы опубликовать свой последний запрос? – Squirrel
Привет Squirrel имена столбцов не совпадают, это код – Gary