Eu gostaria de atribuir os resultados de duas colunaspara duas variáveis. Eu tenho várias instruções TSQL dentro de um bloco de loop de cursor. Quando o @currentId (Id da linha atual) for igual ao max (col1) na tablea, quero obter o valor de tableb.col2.
SELECT MAX(col1), b.[col2] from tablea ta JOIN tableb tb on ta.id = tb.id
WHERE ta.id = @currentId
O acima não funciona, é claro. Além disso, não tenho certeza de como recuperar os valores de col1 e col2. Tipos de dados são:
col1 int
col2 bit
Alguma sugestão?
Respostas:
2 para resposta № 1Você precisa usar o GroupBy enquanto estiver usando o MAX, que é uma função do Agreegate.
Declare @valCol1 INT, @valCol2 INT
SELECT @valCol1 = MAX(col1), @valCol2 = b.[col2] from tablea ta JOIN tableb tb on ta.id = tb.id
WHERE ta.id = @currentId
PRINT @valCol1
PRINT @valCol2
Nota: A consulta acima falhará se a consulta retornar várias linhas.