Olá Carlos,
Se eu preciso passar um valor para um relatório que seja um resultado de um SQL, a melhor forma que eu encontrei foi adicionar um parâmetro no relatório (Crystal Reports ou ReportViewer) passando o resultado do SQL do Banco de Dados.
Um dos motivos é que um relatório faz parte apenas da camada de apresentação de uma aplicação e neste caso não é uma boa prática adicionar um SQL ou a própria conexão do banco de dados dentro do relatório.
[ ]'s
Laércio.
Ajude a melhorar o nosso Fórum!
Não esqueça de marca a mensagem como "útil", caso tenha ajudado.
MCSD .NET