Ir al contenido


Foto

Pasar varios registros de una tabla a otra


  • Por favor identifícate para responder
4 respuestas en este tema

#1 edchar

edchar

    Member

  • Miembros
  • PipPip
  • 20 mensajes

Escrito 30 enero 2013 - 12:39

Estimados amigos de nuevo necesito de sus comentarios y ayudas.

Ahora necesito pasar un grupo de registros de una tabla a otra que no son iguales.
A continuación  les pongo el ejemplo de lo que necesito.

La tabla TBL_Apartados tiene los siguientes campos y registros.

NUMAPART    DETART    CODINV      VALART    CANTART
2365            Detlle1        123          60,000          2
2365            Detlle2        124          70,000          5
2365            Detlle3        125          80,000          4
2365            Detlle4        126          90,000          1
8569            Detlle5        127          50,000          8
7973            Detlle6        128          40,000          9
6569            Detlle7        129          30,000          3



La otra tabla es la TBL_Ventas y tiene los siguientes campos y necesito pasar todos los registros NUMAPART = 2365 a esta tabla

NUMFACT    FACHAFCT    NUMAPART    DETART    CODINV    VALART    CANTART
36989          30/01/13        2365            Detlle1        123          60,000          2
36989          30/01/13        2365            Detlle2        124          70,000          5
36989          30/01/13        2365            Detlle3        125          80,000          4
36989          30/01/13        2365            Detlle4        126          90,000          1



Como verán lo que necesito es pasar todos los registros que tengan el mismo NUMAPART que pueden ser de dos en adelante pero a la vez debo de introducir el NUMFACT y FACHAFCT que no están en la tabla de origen.

¿Como hago un SELECT y un INSERT que me haga esto y me traslade varios registros? agradecería un código de ejemplo.

Muchas Gracias y Saludos
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 30 enero 2013 - 02:06

Saludos.

Tal como indicas en la tabla TBL_Apartados no tienes los campos NUMFACT y FACHAFCT por ende, debe existir alguna relación con la tabla que si posee los campos que necesitas para poder realizar el SELECT adecuadamente.

No explicas si la tabla con la que debe existir la relación es TBL_Ventas.

Este enlace puede ayudarte.
  • 0

#3 edchar

edchar

    Member

  • Miembros
  • PipPip
  • 20 mensajes

Escrito 30 enero 2013 - 07:33

Gracias Rolphy por tu ayuda.

Y sí  en la tabla TBL_Apartados no existen los campos NUMFACT y FACHAFCT estos solo están en la tabla TBL_Ventas.
Y sobre la relación de tablas en realidad no tengo ninguna.

El asunto es que ambas tablas las tengo de esta forma:

El cliente hace un apartado de varios artículos por eso en la tabla apartados se lleva el control de estos, pero cuando ha terminado de pagar entonces esos artículos pasan a la tabla de Ventas donde quedan registradas todas las facturas de ventas y por eso el Numero de factura (NUMFACT) se agrega de forma secuencial y lo extraigo con max(NUMFACT) y ademas esta la fecha de la factura (FACHAFCT) que corresponde al del día.

Así que pensé que la tabla Apartados solo es contenedora de datos, ya que una vez pagados los artículos apartados deja de ser importantes, pues se la ha generado a la persona una factura de ventas.

Por eso lo que necesito es pasar un grupo de registros de la tabla apartados a la de ventas pero que en dicho paso se agregue los datos de los campos NUMFACT y FACHAFCT.

Tengo este código que encontré en la red para pasar un solo registro, pero no se como implementarlo para varios.


    INSERT  INTO TBL_Ventas (NUMFACT, FACHAFCT, NUMAPART, DETART, CODINV, VALART, CANTART)
                  SELECT 36989,'30/01/13', NUMAPART, DETART, CODINV, VALART, CANTART
                  FROM TBL_Apartados
                  WHERE codinv = old.codinv


Ha por cierto esto lo tengo en un trigger por eso el old.codinv

He buscado información pero no encuentro nada especifico por eso necesito tu ayuda y la de otros para lograr pasar todos estos registros por que de lo contrario tendría que tener una variable para cada campo y hacer algún tipo de bucle después de extraer todos los registros de la tabla apartados o sea hasta con mi poca experiencia creo que es lo mas complicado de hacer.

Te agradeceré la ayuda de algún ejemplo para saber por donde empezar con este código.


Gracias y saludos.
  • 0

#4 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 31 enero 2013 - 02:08

Buenas,

El problema de que sólo te coja un registro es de tu cláusula where (la cláusula where es la que hace el filtrado en una sentencia SQL, así que, si sólo te devuelve un registro tiene, forzosamente, ser culpa de ella). Fíjate que aplicas el filtro por el campo codinv en lugar de hacerlo por el que correspondería, el NUMAPART

Nos leemos
  • 0

#5 edchar

edchar

    Member

  • Miembros
  • PipPip
  • 20 mensajes

Escrito 31 enero 2013 - 09:26

Muchas Gracias Cadetill por tu ayuda.

Después de leer tu comentario me di cuenta que el código que tengo es correcto.
Así que me puse a hacer varias pruebas y el problema que tenia estaba en el formato de uno de los datos y por eso no me introducía ningún registro.


Agradezco a ambos por la ayuda, estoy seguro que les parecerá muy obvio lo que estoy preguntando pero el asunto es que soy totalmente nuevo en bases de datos y lo que he trabajado es lo básico de Insert, Update etc... en Access.

Agradezco la paciencia de todos por leer mis preguntas y darse el tiempo de contestar y ayudarme.

Saludos



  • 0




IP.Board spam blocked by CleanTalk.