Pergunta

O que estou tentando fazer com esta consulta é tentar obter todas as linhas mais antigas que o número de corte especificado na tabela customertransaction:

@Cutoffnumber INT

SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber '

Mas estou recebendo o erro abaixo. Observe que esta é uma consulta SQL dinâmica.

Deve declarar a variável escalar "@Cutoffnumber"

Como devo proceder.

Foi útil?

Solução

Investigar sp_executesql

Outras dicas

Decalre @Cutoffnumber INT    
Set @Cutoffnumber = @someValue
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) >' + @Cutoffnumber 

Embora pareça que você poderia fazer isso sem SQL dinâmico:

Declare @Cutoffnumber INT    
Set @Cutoffnumber = @someValue
SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top