![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Insertar datos de un tabla en otra
Hola a todos,
Tengo una consulta SQL que no se como completar y no sé cual sea la mejor opción por lo que recurro a vuestra sapiencia. Tengo la TABLA_A y en esta se van almacenando los siguientes datos. TABLA_A Código:
| ID | NOMBRE |TIPO|ESTADO| |----|--------|----|------| | 1 |CABINA1 | A |ACTIVO| | 2 |CABINA1 | B |ACTIVO| | 3 |CABINA1 | B | LISTO| | 4 |CABINA1 | A | OK | | 5 |CABINA2 | A | LISTO| | 6 |CABINA2 | B |ACTIVO| | 7 |CABINA2 | A | OK | | 8 |CABINA2 | B | LISTO|
Y obtengo Código:
| ID | NOMBRE |TIPO|ESTADO| |----|--------|----|------| | 3 |CABINA1 | B | LISTO| | 4 |CABINA1 | A | OK | | 7 |CABINA2 | A | OK | | 8 |CABINA2 | B | LISTO| TABLA_B Código:
| ID |NOMBRE |TIPO|ESTADO|TIPO|ESTADO| |----|--------|----|------|----|------| | 1 |CABINA1 | B | LISTO| A | OK | | 2 |CABINA2 | A | OK | B | LISTO| Solo se me ocurre usar algo así para actualizar o inserta en esta tabla. Pero no se como integrar todo de una sola vez
El motor es SQL Server. |
#2
|
||||
|
||||
Lo que describes y lo que pides no cuadra. Como va a ser "1 |CABINA1" el ultimo registro?
__________________
El malabarista. |
#3
|
||||
|
||||
Cita:
También debes fijaros en esta sentencia
Arroja esto Código:
| ID | NOMBRE |TIPO|ESTADO| |----|--------|----|------| | 3 |CABINA1 | B | LISTO| | 4 |CABINA1 | A | OK | | 7 |CABINA2 | A | OK | | 8 |CABINA2 | B | LISTO| Considera una carga de datos de ejemplo como esta Código:
| ID | NOMBRE |TIPO|ESTADO| |----|--------|----|------| | 1 |CABINA1 | A |ACTIVO| | 2 |CABINA1 | B |ACTIVO| | 3 |CABINA1 | B | LISTO| | 4 |CABINA1 | A | OK | | 5 |CABINA2 | A | LISTO| | 6 |CABINA2 | B |ACTIVO| | 7 |CABINA2 | A | OK | | 8 |CABINA2 | B | LISTO| |
#4
|
|||
|
|||
hola a todos!!
Sin dar muchos mas detalles de la relación existente entre los datos nombre/tipo y suponiendo que el campo tipo solo pude tener dos valores distintos (A, B), una solución para obtener los datos que marcas en el ejemplo puede ser esta:
Si el campo TIPO puede variar entre mas de dos valores distintos, entonces esta solución ya no es correcta. Este hilo esta en el foro de MS-SQL. Si realmente estas utilizando MSSQL como motor de BBDD puede utilizar también la opción PIVOT, que permite agrupar múltiples registros en varias columnas de un único registro |
#5
|
||||
|
||||
Unas preguntas...
¿Los tipos sólo pueden ser A y B? En cuanto al resultado en la TABLE_B Código:
| ID |NOMBRE |TIPO|ESTADO|TIPO|ESTADO| |----|--------|----|------|----|------| | 1 |CABINA1 | B | LISTO| A | OK | | 2 |CABINA2 | A | OK | B | LISTO| No acabo de entender que las 2 columnas TIPO tengan los valores cambiados. Es decir, no sería más fácil rellenar inicialmente la TABLA_B con unos valores tal que así: Código:
| ID |NOMBRE |TIPO|ESTADO|TIPO|ESTADO| |----|--------|----|------|----|------| | 1 |CABINA1 | A | NULL | B | NULL | | 2 |CABINA2 | A | NULL | B | NULL | Y luego ir haciendo UPDATES, según CABINA y TIPO. Tampoco se si los valores CABINA1 y CABINA2 son de ejemplo y puedes tener más... (CABINA3, CABINA4,...) Al final, para estos casos con una lógica más completa, también puedes hacer una función o un SP, que vaya haciendo los pasos que describes. La SELECT INICIAL, luego la agrupación, y luego el INSERT o UPDATE final con un CASE.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 29-11-2021 a las 10:45:07. |
#6
|
||||
|
||||
De primer momento no contesté porque no se entiende correctamente el problema ni lo que se quiere conseguir.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
Cita:
Te recomiendo que le agreges un sufijo a los datos que marcan las diferencias (ej: id_a, cabina1_b) donde sea el caso. --- Por otro lado, lo mas probable es que estas tratando de meter un circulo en un cuadrado. Cual es la RAZON y el objetivo de lo que haces?
__________________
El malabarista. |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
insertar registro de otra tabla diferentes base de datos | igamerpc | Tablas planas | 7 | 16-04-2020 11:11:29 |
Insertar datos de una Tabla a otra usando where... | verito_83mdq | SQL | 5 | 15-03-2011 19:28:59 |
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla | taru | MySQL | 1 | 27-07-2006 15:36:12 |
insertar datos en una tabla desde otra | Giniromero | SQL | 5 | 17-06-2004 19:37:16 |
Como insertar datos de una tabla en otra tabla? | Salomon | Firebird e Interbase | 1 | 28-08-2003 11:29:40 |
![]() |
|