![]() |
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|
Y obtengo Código:
| ID | NOMBRE |TIPO|ESTADO| TABLA_B Código:
| ID |NOMBRE |TIPO|ESTADO|TIPO|ESTADO| 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. |
Lo que describes y lo que pides no cuadra. Como va a ser "1 |CABINA1" el ultimo registro?
|
Cita:
También debes fijaros en esta sentencia
Arroja esto Código:
| ID | NOMBRE |TIPO|ESTADO| Considera una carga de datos de ejemplo como esta Código:
| ID | NOMBRE |TIPO|ESTADO| |
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 |
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| 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| 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. |
De primer momento no contesté porque no se entiende correctamente el problema ni lo que se quiere conseguir.
|
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? |
La franja horaria es GMT +2. Ahora son las 15:29:05. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi