Asignar una sentencia SQL a una variable int?

Quisiera asignar una sentencia sql a una variable int dentro de una función.
Tengo una función con 2 parámetros de entrada y con esos parámetros quiero insertar un registro en otra tabla que tiene 3 campos, los dos que le paso y unparametro de tipo int que quiero generar con una consulta de sql
¿Cómo lo puedo hacer?

1 respuesta

Respuesta
1
No se si he entendido pero creo que quieres hacer esto
decalre @mivar as int
select @mivar1=campoint from tabla where criterios   o si son varios
select @mivar1=sum(campoint) from tabla where criterio
en el select puedes hacer una asignación de varaibles directamente incluso
seelct @mivar1=campoint, @mivar2=campo2, @mivar3=campo2 from tabla where criterios
pero solo asigna el primer registro, es mas si la consulta devuelve mas de un registro esto da erro
Otra forma que te permite hacer operaciones es con un cursor, el cursor es como un recordset de VB, aunque es más conveniente utilizar el recordset que el cursor, es decir es mejor hacerlocon VB que con SQL
declare @mivar as int       --variable para leer los datos de la tabla
declare @total as int--para la suma
declare cur cursor for--declaracion del cursor
select campoint from tabla  --select para el cursor
open cur--abrimos es decir se ejecuta el select
fetch from cur into @mivar  --cargamos mi variable con el primer registro
while @@fetch_status=0   --mientras no se acaben los registros del cursor
begin
@total=@total+@mivar
Fetch from cur into @mivar --cargamos mi variable con el siguiente registro
end-- el bucle continua hasta acabar con todos los registros
close cur--cerramos el cursor
deallocate cur--liberamos memoria
ahora en @total tienes la suma del campo
este ejemplo en realidad es mejor hacerlo como antes select sum(campo) pero de esta forma puede realizar los cálculos con los datos leidos.
En el fetch tiene que haber tantas variables como campos haya en el select
Cualquier duda me dices

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas