/ / Atribuindo colunas de resultados definidas para variáveis ​​- sql, sql-server-2008, tsql

Atribuindo colunas de resultados definidas a variáveis ​​- sql, sql-server-2008, tsql

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 № 1

Você 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.