Autor
|
Tema: SQL, Problema con unos SELECT en un INSERT (Leído 5,550 veces)
|
llAudioslavell
Desconectado
Mensajes: 177
|
Hola a todos ... ! Estoy creando un Procedimiento que me permita Insertar valores, pero para un campo tengo que restar 2 fechas, estas fechas se encuentran en tablas diferentes, "F_PAGO" se encuentra en la tabla PAGOS y el otro campo "F_PAGO se encuentra en la tabla PAGOS_REGISTRADOS, necesito la diferencia de estos 2 campos, que son fechas, para allar los dias de diferencias para despues multiplicarlo por 1.
CREATE PROCEDURE SP_GENERAR_MORA AS INSERT INTO MORA(ID_MORA,NRO_BOLETA,MONTO,MORA_INICIAL,MORA_TOTAL,RESTA,ID_CONCEPTO,ID_ESTUDIANTE) VALUES('02',0,0.00,1.00,(DATEDIFF(DAY,(SELECT F_PAGO FROM PAGOS WHERE ID_CONCEPTO= 'CP-02'),( SELECT F_PAGO FROM PAGOS_REGISTRADOS WHERE ID_PAGO='P02' ))) * 1, 0,'CP-02','100545')
El SQL me muestra este error:
Mens 1046, Nivel 15, Estado 1, Procedimiento SP_GENERAR_MORA, Línea 5 No se permiten subconsultas en este contexto. Sólo se admiten expresiones escalares. Mens 102, Nivel 15, Estado 1, Procedimiento SP_GENERAR_MORA, Línea 5 Sintaxis incorrecta cerca de ')'.
Me dijeron que si se puede hacer una consulta en un INSERT, pero nose por que me muestra este error ..... no domino mucho SQL, espero sus aportes, desde ya muchas gracias ^^ Salu2
|
|
|
En línea
|
|
|
|
Carloswaldo
Traductor
Moderador Global
Desconectado
Mensajes: 4.764
Nos reservamos el derecho de ban.
|
Puedes usar variables para evitarte los dolores de cabeza de MsSQL CREATE PROCEDURE SP_GENERAR_MORA AS DECLARE @F_PAGO1 AS datetime DECLARE @F_PAGO2 AS datetime SELECT @F_PAGO1 = F_PAGO FROM PAGOS WHERE ID_CONCEPTO= 'CP-02' SELECT @F_PAGO2 = F_PAGO FROM PAGOS_REGISTRADOS WHERE ID_PAGO='P02' INSERT INTO MORA(ID_MORA,NRO_BOLETA,MONTO,MORA_INICIAL,MORA_TOTAL,RESTA,ID_CONCEPTO,ID_ESTUDIANTE) VALUES('02',0,0.00,1.00,DATEDIFF(DAY,@F_PAGO1,@F_PAGO2) * 1, 0,'CP-02','100545')
|
|
|
En línea
|
|
|
|
jrivam
Desconectado
Mensajes: 1
|
solo cambia el values() por select
CREATE PROCEDURE SP_GENERAR_MORA AS INSERT INTO MORA(ID_MORA,NRO_BOLETA,MONTO,MORA_INICIAL,MORA_TOTAL,RESTA,ID_CONCEPTO,ID_ESTUDIANTE) select '02',0,0.00,1.00,(DATEDIFF(DAY,(SELECT F_PAGO FROM PAGOS WHERE ID_CONCEPTO= 'CP-02'),( SELECT F_PAGO FROM PAGOS_REGISTRADOS WHERE ID_PAGO='P02' ))) * 1, 0,'CP-02','100545'
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
problema con INSERT de MySQL
PHP
|
H4RR13R
|
5
|
3,581
|
8 Febrero 2008, 00:17 am
por eLank0
|
|
|
Problema Con Python+Mysql (insert)
Scripting
|
b0h
|
2
|
3,904
|
16 Marzo 2008, 16:26 pm
por b0h
|
|
|
Problema con insert de SQL en JAVA
Java
|
4815162342
|
2
|
7,572
|
1 Octubre 2008, 03:48 am
por 4815162342
|
|
|
[SOL] Insert into select ... mysql
Bases de Datos
|
Cioouw
|
9
|
11,421
|
22 Abril 2010, 03:24 am
por Cioouw
|
|
|
[Solucionado] Problema con bulk insert
Bases de Datos
|
criskapunk
|
0
|
8,541
|
16 Junio 2011, 14:59 pm
por criskapunk
|
|