Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda con ejecutar una sentencia select en Transact

Estas en el tema de Ayuda con ejecutar una sentencia select en Transact en el foro de Bases de Datos General en Foros del Web. Hola a todos, necesito ejecutar en un procediemiento almacenado, una sentencia sql formado por una parte fija, y otra que va variando y que voy ...
  #1 (permalink)  
Antiguo 15/03/2004, 10:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 6
Antigüedad: 20 años, 2 meses
Puntos: 0
Ayuda con ejecutar una sentencia select en Transact

Hola a todos, necesito ejecutar en un procediemiento almacenado, una sentencia sql formado por una parte fija, y otra que va variando y que voy concatenando en una variable string.

es del tipo: SELECT @Total = Sum(Total) FROM Tabla WHERE
Id = @Id
(esta es la parte fija)

AND Fecha BETWEEN '01/01/04' AND '15/03/2004'
(esto es la parte variable que introduzco en una variable @Str)


Como hago para ejecutar esta sentencia completa?¿

Haciendo esto:
SELECT @Total = Sum(Total) FROM Tabla WHERE Id = @Id + (@Str)
me da error.

Haciendo un exec('SELECT @Total = Sum(Total) FROM Tabla WHERE Id = @Id' + @str)
también me da error

Incluso haciendo esto:
Set @Total = SELECT Sum(Total) FROM Tabla WHERE Id = @Id + (@Str)
también me da error.

ALguien sabe como hacerlo bien?¿?

Muchas gracias por todo.
  #2 (permalink)  
Antiguo 15/03/2004, 15:36
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Código:
EXEC ('SELECT @Total = Sum(Total) FROM Tabla WHERE Id = @Id ' + @Str)
Prueba la cadena armada con PRINT (...) en lugar de EXEC (...) desde el query analyzer para que veas los posibles errores de armado.

PD. Los paréntesis son importantes
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:02.