Problema con sintaxis SQL al unir dos tablas después de insertar registros

Hola David. Tengo un inconveniente con una sintaxis de SQL estoy uniendo dos tablas y después insertar los registros a una tabla que cree, de la siguiente forma:
insert into fincomp (ORMSTRID,ORMSTRNM,CRDTAMNT, DEBITAMT,ORCRDAMT, ORDOCNUM,ACTINDX,ACTNUMBR_1,ACTNUMBR_2, ACTNUMBR_3, ACTNUMBR_4, ACTNUMBR_5)SELECT ORMSTRID, ORMSTRNM, CRDTAMNT,DEBITAMT,ORCRDAMT,ORDOCNUM,ACTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,ACTNUMBR_5 FROM GL20GL30 UNION ALL SELECT VENDORID,VENDNAME,CRDTAMNT,DEBITAMT,CURTRXAM,VCHRNMBR,DSTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,"ACTNUMBR_5 FROM COMPRAS
no se que estoy haciendo mal, o hay otra forma de hacerlo?
Gracias :)

1 Respuesta

Respuesta
1
El inser lo haces de la siguiente forma:
insert into fincomp SELECT ORMSTRID, ORMSTRNM, CRDTAMNT,DEBITAMT,ORCRDAMT,ORDOCNUM,ACTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,ACTNUMBR_5 FROM GL20GL30 UNION ALL SELECT VENDORID,VENDNAME,CRDTAMNT,DEBITAMT,CURTRXAM,VCHRNMBR,DSTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,"ACTNUMBR_5 FROM COMPRAS
Pero tienes que tener todos los campos de la tabla en donde se insertan en la selección de cada sentencia de select, en cada sentencia de select, deben de aparecer los mismos campos.
Saludos
David Enciso
No se que estoy h
Hola David.
Escribo tal cual la sintaxis que me dijo, dentro del codigo de visual basic y me sale el siguiente error: Sintaxis Error SELECT ORMSTRID, ORMSTRNM, CRDTAMNT,DEBITAMT,ORCRDAMT,ORDOCNUM,ACTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,ACTNUMBR_5 FROM GL20GL30 UNION <<??>> ALL SELECT VENDORID,VENDNAME,CRDTAMNT
hmmm no se si despues del segundo select sobrenombro con as las columnas para que me queden igual al primer select. por ejempllo vendorid as ormstrid .....!! y asi sucesivamente... que opina?
Gracias.. David.
Si, creo que lo escribí un poco complicado, pero esa fue la intención de primera mano.
Estoy trabajando en la base de datos PERVASIVE
Checa en la ayuda de esta base de datos si se puede utilizar la sentencia de sql UNION ALL, quizás sea solo con UNION.
Este tipo de instrucción se utiliza en sql 92 estándar, pero no sé en la que indicas si esto funcione.
El Union all si me funciona porque si hago la sintaxis sola con el union all el programa no me pone ningún problema. Cuando le coloco el insert ahí si sale el error.. Bueno David.. de todas maneras gracias por la ayuda :)
Hola David
Escribí la siguiente sintaxis:
inser_fincomp = "insert into fincomp SELECT ORMSTRID, ORMSTRNM, CRDTAMNT,DEBITAMT,ORCRDAMT,ORDOCNUM,ACTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,ACTNUMBR_5 FROM GL20GL30 UNION ALL SELECT VENDORID AS ORMSTRID, VENDNAME AS ORMSTRNM,CRDTAMNT,DEBITAMT,CURTRXAM AS ORCRDAMT,VCHRNMBR AS ORDOCNUM,DSTINDX AS ACTINDX,ACTNUMBR_1,ACTNUMBR_2,ACTNUMBR_3,ACTNUMBR_4,ACTNUMBR_5 FROM COMPRAS"
¿Y tampoco me funciono me sale el mismo error union <<? >> all select
no se como mas hacer. Trate de hacerlo con una vista y tampoco me funciona.
En que base de datos estas trabajando porque el código debería de funcionar de forma correcta.
Checa las siguientes ligas:
http://www.1keydata.com/sql/sqlunionall.html
http://www.w3schools.com/sql/sql_union.asp
http://www.techonthenet.com/sql/union_all.htm
http://www.pervasive.com/library/
http://www.pervasive.com/library/index.asp?_pub=SER_794
http://www.pervasive.com/library/index.asp?_pub=SER_794
La última liga tiene la información necesaria para los union.
Muchas gracias david. Termine haciéndolo por pedacitos es decir insert tabla por tabla sin el union y me funciono. De todas maneras muchas gracias por su información me ha servido muchisimoooo
Gracias, David. Seguiré buscando por la red a ver donde puedo encontrar ayuda sobre mi manejador de bases de datos
Quiere decir que el sql de tu base de datos no soporta el insert directo de una selección, checa la sintaxis de la instrucción insert de tu manejador, ahí debes de encontrar como utilizar el insert con un select.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas