FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Executar un procedimiento dentro de un Select?
hola amigos tengo un problema.. quiero hacer una insercion en una tabla
con un select, pero hay un campo que necesito validar antes de insertarlo,, por ejemplo: Insert into Vigentes(id_empleado, vigente) select (id_empleado, {aki kiero executar la validacion de procedimuento} from empleados. mi procedimiento tiene tres variables id_empleado, fecha_i, fecha_f y me devuelve si estubo vigente o no... con el procedimiento no tengo problemas..... pero quiero insertar a cada trabajador vigente en la tabla.... ojala me puedan ayudar... saludos |
#2
|
|||
|
|||
buen dia carlos
provaste ya con funciones en ves de procedimientos seria algo asi como:
Espero te sirva la idea |
#3
|
|||
|
|||
Sigo Teniendo Problemas Con La Inserccion:
Este Es La Funcion: Create Function Fue_vigente_2( @id_trabajad Int, @fi Datetime, @ff Datetime) Returns Varchar(2) As Begin Declare @movimiento Varchar(1) Declare @fecha_mov Datetime Declare @fue Varchar(2) Set @movimiento='z' Select @movimiento=mov_tipo, @fecha_mov=fecha From V_trabmovi Where Id_trabajad=@id_trabajad And Fecha<=@ff And Id_trabmovi=(select Max(id_trabmovi) From Trabmovi Where Id_trabajad=@id_trabajad) If (@movimiento<>'z') Begin If (@movimiento='b' And @fecha_mov>=@fi) Set @fue='si' Else If (@movimiento='b' And (@fecha_mov<@ff Or @fecha_mov<@fi)) Set @fue='no' Else Set @fue='si' End Else Set @fue='no' Return @fue End Y Trate De Poner La Insercion Como Me Dijiste Insert Into Trabvig(id_trabajad, Vigente) Select (id_trabajad, Fue_vigente_2 (id_trabajad, '10/01/206','10/31/2006') From Trabajad Estoy Haciendo Algo Mal?? Saludos |
#4
|
|||
|
|||
nesecitaria saber el error que produce el SQL, a primera vista seria la fecha que le mandas en el segundo parametro de la funcion en el select del insert
'10/01/206' seria '10/01/2006' si puedes mandar el error generado seria mas facil |
#5
|
|||
|
|||
ESTA ES LA SENTENCIA
Insert Into Trabvig(id_trabajad, Vigente) Select (id_trabajad, Fue_vigente_2 (id_trabajad, GETDATE,GETDATE)) From Trabajad Y EL ERROR::::: ______________________________________ Server: Msg 170, Level 15, State 1, Line 2 Line 2: Incorrect syntax near ','. TAMBIEN LO PONGO DE ESTA MANERA Insert Into Trabvig(id_trabajad, Vigente) Select id_trabajad, FUE_VIGENTE_2 (id_trabajad, GETDATE,GETDATE) From Trabajad Y ME MANDA EL ERROR Server: Msg 195, Level 15, State 10, Line 2 'FUE_VIGENTE_2' is not a recognized function name. LA FUNCION EXISTE !!! Última edición por mendozasoftware fecha: 31-10-2006 a las 21:03:54. |
#6
|
|||
|
|||
ok entonces serian dos cosas:
quedaria el insert asi:
pruebalo y veamos que pasa |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Procedimiento Almacenado Devolver una Select | granchop | Firebird e Interbase | 5 | 14-09-2006 09:57:03 |
procedimiento dentro de procedimiento | chechu | Varios | 6 | 24-11-2005 23:34:48 |
SP dentro de Select | buitrago_listas | Firebird e Interbase | 1 | 17-01-2005 13:43:04 |
for select....do en procedimiento almacenado | lledesma | SQL | 1 | 23-04-2004 08:03:01 |
Select a procedimiento almacenado | ACK | Firebird e Interbase | 12 | 19-07-2003 20:13:28 |
|