elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  SQL, Problema con unos SELECT en un INSERT
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: SQL, Problema con unos SELECT en un INSERT  (Leído 4,108 veces)
llAudioslavell

Desconectado Desconectado

Mensajes: 177


Ver Perfil
SQL, Problema con unos SELECT en un INSERT
« en: 10 Febrero 2012, 22:49 »

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 Desconectado

Mensajes: 4.741


Nos reservamos el derecho de ban.


Ver Perfil WWW
Re: SQL, Problema con unos SELECT en un INSERT
« Respuesta #1 en: 11 Febrero 2012, 04:21 »

Puedes usar variables para evitarte los dolores de cabeza de MsSQL

Código
  1. CREATE PROCEDURE SP_GENERAR_MORA
  2. AS
  3. DECLARE @F_PAGO1 AS datetime
  4. DECLARE @F_PAGO2 AS datetime
  5. SELECT @F_PAGO1 = F_PAGO FROM PAGOS WHERE ID_CONCEPTO= 'CP-02'
  6. SELECT @F_PAGO2 = F_PAGO FROM PAGOS_REGISTRADOS WHERE ID_PAGO='P02'
  7. 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 Desconectado

Mensajes: 1


Ver Perfil
Re: SQL, Problema con unos SELECT en un INSERT
« Respuesta #2 en: 10 Julio 2013, 21:18 »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con INSERT de MySQL
PHP
H4RR13R 5 2,301 Último mensaje 8 Febrero 2008, 00:17
por eLank0
Problema Con Python+Mysql (insert)
Scripting
b0h 2 2,637 Último mensaje 16 Marzo 2008, 16:26
por b0h
Problema con insert de SQL en JAVA
Java
4815162342 2 6,592 Último mensaje 1 Octubre 2008, 03:48
por 4815162342
[SOL] Insert into select ... mysql
Bases de Datos
Cioouw 9 9,718 Último mensaje 22 Abril 2010, 03:24
por Cioouw
[Solucionado] Problema con bulk insert
Bases de Datos
criskapunk 0 6,697 Último mensaje 16 Junio 2011, 14:59
por criskapunk
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines