none
Paquete SSIS, Pasar datos de unas vistas a una tabla RRS feed

  • Pregunta

  • Estimados :

    tengo una serie de vistas que me muestran los movimientos de ciertos productos, cada una de las vistas me definen un movimiento en particular, lo que necesito es generar un paquete que al ejecutar me llene una tabla en cuestión.

    Les doy un ejemplo :

    Vista E01 me entrega : producto,  cantidad (esta vista uno esta asociado a los datos de Compras Nacionales

    Vista E02 me entrega : producto,  cantidad (esta vista uno esta asociado a los datos de Compras Internacionales

    Vista E03 me entrega : producto,  cantidad (esta vista uno esta asociado a los datos de Devoluciones

    En una tabla que esta construido por :

    Producto,E01, E02, E03

    Lo que necesito es que los datos de las vistas vayan quedando guardado en la tabla asi:

     Producto E01 E02 E03

    1111111  10

    2222222   5    15    20

    333333    50   25    10

    actualmente estoy pcupando varios control flow una por cada una de las vistas, y al llenar la tabla  me queda asi :

    1111111   10

    2222222    5

    2222222           15

    2222222                 20

    3333333   50

    3333333           25

    3333333                  10

    Como hago el join en SSIS para que me quede un solo registro por producto ?

    martes, 2 de abril de 2013 12:33

Respuestas

Todas las respuestas

  • Creo que uniendo tus 3 vistas podrías tener la estructura deseada y opcionalmente guardarla en la tabla que quieres.

    MVP MCT MCTS Daniel Calbimonte

    http://elpaladintecnologico.blogspot.com

    • Marcado como respuesta bavaro1967 miércoles, 3 de abril de 2013 14:15
    martes, 2 de abril de 2013 13:56
  • Hola Bavaro,

    Si no tienes que realizar ningún tratamiento de los datos (simplemente leerlos de la vista e insertarlos en la tabla), yo usaría la Tarea Ejecutar SQL 3 veces (una para cada vista), donde el script a introducir sería similar a:

    --Tarea Ejecutar SQL 1
    INSERT INTO Productos (Producto,EO1,EO2,EO3)
    SELECT Producto,Cantidad,NULL,NULL
    FROM VistaE01
    
    --Tarea Ejecutar SQL 2
    INSERT INTO Productos (Producto,EO1,EO2,EO3)
    SELECT Producto,NULL,Cantidad,NULL
    FROM VistaE02
    
    --Tarea Ejecutar SQL 3
    INSERT INTO Productos (Producto,EO1,EO2,EO3)
    SELECT Producto,NULL,NULL,Cantidad
    FROM VistaE03
    

    ¡Espero que te sirva!

    Saludos.


    Ferran Chopo
    MCPD Web, MCITP SQL Server
    Web: http://www.ferranchopo.com Twitter: @fchopo

    martes, 2 de abril de 2013 15:15
  • Hola. Concuerdo con Ferrán en que uses un componente SSIS de tipo "Ejecutar SQL" pero este query, a diferencia de lo que él propone, hace lo que necesitas:

    SELECT VistaE01.ProductoID, VistaE01.CantE01, VistaE02.CantE02, VistaE03.CantE03
    FROM VistaE01 LEFT JOIN VistaE02
    ON VistaE01.ProductoID=VistaE02.ProductoID LEFT JOIN VistaE03
    ON VistaE02.ProductoID=VistaE03.ProductoID

    Pruébalo y nos confirmas, por favor.

    Saludos,


    Guillermo Taylor F.
    IT Pro & Xbox gamer
    My blog

    martes, 2 de abril de 2013 16:25
  • Gracias Dani, resulto.
    miércoles, 3 de abril de 2013 14:13
  • Gracias Ferrán y Guillermo, si resulta, un gran abrazo a todos.
    miércoles, 3 de abril de 2013 14:14