FoxPro/Visual FoxPro - Insertar consulta en una tabla

 
Vista:

Insertar consulta en una tabla

Publicado por Pedro Aguilar (5 intervenciones) el 28/01/2005 18:34:18
Hola
discuplen la molestia pero necesito ayuda con una consulta

lo que intento es que que el resultado de una consulta se guarde en una tabla, ya intente con de éstas formas y no ha funcionado:

select * fom tabla into cursor tabla2
select * fom tabla into table tabla2
select * fom tabla into database tabla2
select * fom tabla into dbf tabla2
insert into tabla2 (campos) values(select * fom tabla)

Espero que alguien me pueda ayudar.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Insertar consulta en una tabla

Publicado por pablo (5 intervenciones) el 19/02/2005 05:11:35
Probá lo siguiente
select * from tabla ( el resultado debe salir en la pantalla)

select * from tabla into cursor otronombredetabla

select tabla.campo,tabla.campo from tabla into cursor otronombredetabla

revisa las opciones del menú herramientas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Insertar consulta en una tabla

Publicado por Vladimir Acosta (1 intervención) el 31/05/2006 18:03:56
Tema 6. Actualización de datos (II)

Insertar varias filas INSERT INTO...SELECT

Podemos insertar en una tabla varias filas con una sola sentencia SELECT INTO si los valores a insertar se pueden obtener como resultado de una consulta, en este caso sustituimos la cláusula VALUES lista de valores por una sentencia SELECT como las que hemos visto hasta ahora. Cada fila resultado de la SELECT forma una lista de valores que son los que se insertan en una nueva fila de la tabla destino. Es como si tuviesemos una INSERT...VALUES por cada fila resultado de la sentencia SELECT.

La sintaxis es la siguiente:

El origen de la SELECT puede ser el nombre de una consulta guardada, un nombre de tabla o una composición de varias tablas ( mediante INNER JOIN, LEFT JOIN, RIGHT JOIN o producto cartesiano).

Cada fila devuelta por la SELECT actúa como la lista de valores que vimos con la INSERT...VALUES por lo que tiene las mismas restricciones en cuanto a tipo de dato, etc. La asignación de valores se realiza por posición por lo que la SELECT debe devolver el mismo número de columnas que las de la tabla destino y en el mismo orden, o el mismo número de columnas que indicamos en la lista de columnas después de destino.

Las columnas de la SELECT no tienen porque llamarse igual que en la tabla destino ya que el sistema sólo se fija en los valores devueltos por la SELECT.

Si no queremos asignar valores a todas las columnas entonces tenemos que indicar entre paréntesis la lista de columnas a rellenar después del nombre del destino.

El estándar ANSI/ISO especifica varias restricciones sobre la consulta que aparece dentro de la sentencia INSERT:

la consulta no puede tener una cláusula ORDER BY,

la tabla destino de la sentencia INSERT no puede aparecer en la cláusula FROM de la consulta o de ninguna subconsulta que ésta tenga. Esto prohibe insertar parte de una tabla en sí misma,

la consulta no puede ser la UNION de varias sentencias SELECT diferentes,

el resultado de la consulta debe contener el mismo número de columnas que las indicadas para insertar y los tipos de datos deben ser compatibles columna a columna.

Sin embargo en SQL de Microsoft Jet,

se puede incluir la cláusula ORDER BY aunque no tiene mucho sentido.

se puede poner en la cláusula FROM de la consulta, la tabla en la que vamos a insertar,

pero no podemos utilizar una UNION.



Ejemplo: Supongamos que tenemos una tabla llamada repres con la misma estructura que la tabla empleados, y queremos insertar en esa tabla los empleados que tengan como titulo rep ventas

INSERT INTO repres SELECT * FROM empleados WHERE titulo = 'rep ventas'

Con la SELECT obtenemos las filas correspondientes a los empleados con título rep ventas,y las insertamos en la tabla repres. Como las tablas tienen la misma estructura no hace falta poner la lista de columnas y podemos emplear * en la lista de selección de la SELECT.

Ejemplo: Supongamos ahora que la tabla repres tuviese las siguientes columnas numemp, oficinarep, nombrerep. En este caso no podríamos utilizar el asterisco, tendríamos que poner:

INSERT INTO repres SELECT numemp, oficina, nombre FROM empleados WHERE titulo = 'rep ventas'

O bien:

INSERT INTO repres (numemp, oficinarep, nombrerep) SELECT numemp, oficina, nombre FROM empleados WHERE titulo = 'rep ventas'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como crear una tabla en visual fox pro

Publicado por Elias Enog Carballo (2 intervenciones) el 23/01/2011 02:14:29
CLASE PRACTICA
1.-Crear una base de datos llamada SISNOMIMA.
2.- Asegúrese de que esta seleccionada la base de datos SISNOMINA y escriba los comandos para ejecutar las siguientes Consultas:
2.a Crear una Tabla llamada SEGURO que contenga los campos IdSeguro Int, NomSeguro char 20

2.b Crear una Tabla llamada EMPLEADO que contenga los campos: IdEmpl int, NomEmp char 20, Cargo char 20, NumInss int, Salario Monetario, IdSeguro int.
3.- Introduzca los siguientes registros: Tabla SEGURO

El dato de fecha no debe ser digitado.

4.- Visualice los empleados que seleccionaron el tipo de seguro 1

5.- Visualice Nombre, Cargo y Salario de todos los empleados cuyo cargo sea Gestor y ganen más de 1500 córdobas, ordenado por salario.

6.- Visualice los datos de los empleados con cargo Gestor o que su salario sea menor a 5000, ordenada por salario.
7.- Visualice el nombre y el salario de los empleados cuyo salario esté comprendido entre 1000 y 7000.
8.- Visualice todos los datos de los empleados que seleccionaron el tipo de seguro 2.
9.- Elimine el Tipo de Seguro 4, de la tabla SEGURO. /*Investigar como eliminar un registro*/
10.- Agregar el campo correo a la tabla Empleado.
11.- Consultar todos los datos de la tabla Empleado.
12-. Modifique el campo correo por corr_electr. /*Investigar como modificar un campo*/
13.- Investigue como hacer una copia de una tabla.
14.- Hacer una copia de la tabla Seguro y asigne el nombre: CopiaSeguro.
15. Elimine la tabla Seguro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como crear una tabla en visual fox pro

Publicado por Elias Enog Carballo (2 intervenciones) el 23/01/2011 02:15:05
CLASE PRACTICA
1.-Crear una base de datos llamada SISNOMIMA.
2.- Asegúrese de que esta seleccionada la base de datos SISNOMINA y escriba los comandos para ejecutar las siguientes Consultas:
2.a Crear una Tabla llamada SEGURO que contenga los campos IdSeguro Int, NomSeguro char 20

2.b Crear una Tabla llamada EMPLEADO que contenga los campos: IdEmpl int, NomEmp char 20, Cargo char 20, NumInss int, Salario Monetario, IdSeguro int.
3.- Introduzca los siguientes registros: Tabla SEGURO

El dato de fecha no debe ser digitado.

4.- Visualice los empleados que seleccionaron el tipo de seguro 1

5.- Visualice Nombre, Cargo y Salario de todos los empleados cuyo cargo sea Gestor y ganen más de 1500 córdobas, ordenado por salario.

6.- Visualice los datos de los empleados con cargo Gestor o que su salario sea menor a 5000, ordenada por salario.
7.- Visualice el nombre y el salario de los empleados cuyo salario esté comprendido entre 1000 y 7000.
8.- Visualice todos los datos de los empleados que seleccionaron el tipo de seguro 2.
9.- Elimine el Tipo de Seguro 4, de la tabla SEGURO. /*Investigar como eliminar un registro*/
10.- Agregar el campo correo a la tabla Empleado.
11.- Consultar todos los datos de la tabla Empleado.
12-. Modifique el campo correo por corr_electr. /*Investigar como modificar un campo*/
13.- Investigue como hacer una copia de una tabla.
14.- Hacer una copia de la tabla Seguro y asigne el nombre: CopiaSeguro.
15. Elimine la tabla Seguro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar