![]() |
Consulta de SQL Insert into + Select + from + Where
Buenas tardes gente, como les va? vengo a hacer una consulta.. es la siguiente..
tengo 3 tablas.. Tabla 1 - tabla 2 - tabla 3 con campos similares. y una tabla final y necesito copiar los campos de cada una de las tablas [1,2,3] e insertarla en un solo registro. en tabla final. que seria Tabla final - registro 1 - campo 1 2 3 4 5 de tabla 1 | campo 1 2 3 4 5 de tabla 2 | campo 1 2 3 4 5 de tabla 3 registro 2 - campo 1 2 3 4 5 de tabla 1 | campo 1 2 3 4 5 de tabla 2 | campo 1 2 3 4 5 de tabla 3 y asi sucesivamente. tengo esto, con 2 tablas.
pasa lo siguiente, cuando 1 de las tablas esta vacia, no hace la consulta, pero es lo que quiero evitar; que las tablas sean independiente, pero que los datos se inserten en un solo registro en la tabla final... espero haberme explicado y puedan ayudarme. Gracias de antemano.. saludos.:confused: |
Hola: Estuve mirando tu consulta y me quede pensando... ¿Es necesario que teniendo los datos en la tabla1, tabla2 y tabla3 juntes todo en una tabla4, es decir, estas duplicando registros y eso es como medio innecesario.
Por otra parte puedo indicarte el uso de Join para realizar tu consulta y dependera de cuales valores son los que queres que aparezcan si tienen o no correspondencia. Por ejemplo
En ese caso trae todos los registros de la tabla1 o sea la de la izquierda tenga correspondencia o no con la tabla derecha y
es el caso inverso, o sea la de la derecha. Resultado: suponte que en una tabla cliente la relacionas con deudas por Left join y si ese cliente no tiene registros en deudas los valores a mostrar serian completados con null. Por Ejemplo (lo pongo como codigo para que diferencies los campos).- Código:
Id Apellido Nombres NroCta IdCte DeudaCon las tres tablas seria
Espero que me hallas entendido algo y por ahí resuelves lo que necesitabas. Igualmente me parece poco eficiente que repitas o dupliques los datos en una tabla final (A menos que sea imprescindible para algo).- Primero proba la consulta a traves del select sin el insert para ver si tenes todos los datos que necesitas y despues realiza las modificaciones para que inserte Saludos |
Gracias amigo, por tu respuesta me parece bien lo que planteas, lo que pasa es que como veras son tablas temporales porque trabajo en un modulo de importacion de datos captados a traves de un archivo txt para sistematizar una porcion de trabajo y disminuir el margen de error al tipear valores.. las tablas1,2,3 las vacio cuando la inserto a importacion final que esta compuesta por los campos de t1t2t3, con fecha final de importacion y fecha final del dia, porque debo cerrarlo.. una vez cerrado ya no puedo ingresar mas datos de ese dia por seguridad. y por eso basicamente t1t2t3 son como temporales.. pero probare eso que me escribiste.. lo otro que pense fue en crear 3 tablas finales individuales y las 3 temporales y luego buscaria 1 registro por registro.. pero bueno probare y te cuento como me fue.. muchas gracias.. Saludos.
PD: estoy empezando con sql .. ;) |
| La franja horaria es GMT +2. Ahora son las 23:12:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi