none
join merge entre excel y sql server RRS feed

  • Pregunta

  • Buenos Días,


    Estoy realizando un merge join en integration Services de una tabla de excel contra una
    tabla de Sql Server 2005 a la que accedo mediante una conección OLE DB. en la tabla de Sql tengo la información de la Tabla Sales.SalesOrderDetail de la base AdventureWorks y en el excel lo que hice fue pegar la información de la tabla Productio.Product.

    Cuando hago el merge join de estas dos tablas en teoría deberían hacer join todos los registros, dado que estoy haciendo el join por el campo ProductID.  Sin embargo la salida del Merge Join solo me devuelve 27 registros coincidentes.

    La pregunta es:  ¿Hay alguna propiedad extra que deba configurar, como el tamaño de un buffer?.  ¿alguien tiene idea de porque no me arroja todos los registro de la intersección dado que la tabla SalesOrderDetail tiene aproximadamente 121.000 registros?


    Gracias,

    JULIAN CASTIBLANCO P.
    julian_castiblancop@hotmail.com
    Bogotá, Colombia.

    viernes, 7 de septiembre de 2007 4:45

Respuestas

  •  Julian Castiblanco Escribió:
    Buenos Días,


    Estoy realizando un merge join en integration Services de una tabla de excel contra una
    tabla de Sql Server 2005 a la que accedo mediante una conección OLE DB. en la tabla de Sql tengo la información de la Tabla Sales.SalesOrderDetail de la base AdventureWorks y en el excel lo que hice fue pegar la información de la tabla Productio.Product.

    Cuando hago el merge join de estas dos tablas en teoría deberían hacer join todos los registros, dado que estoy haciendo el join por el campo ProductID.  Sin embargo la salida del Merge Join solo me devuelve 27 registros coincidentes.

    La pregunta es:  ¿Hay alguna propiedad extra que deba configurar, como el tamaño de un buffer?.  ¿alguien tiene idea de porque no me arroja todos los registro de la intersección dado que la tabla SalesOrderDetail tiene aproximadamente 121.000 registros?


    Gracias,

    JULIAN CASTIBLANCO P.
    julian_castiblancop@hotmail.com
    Bogotá, Colombia.



    Aparte de usar el mismo tipo de datos; Merge Join espera que ambos sets de datos esten ordenados por la columna(s) usadas en el join...para esos puedes usar un sort transformation
    jueves, 27 de septiembre de 2007 20:16

Todas las respuestas

  • El motivo de tu problema es que los tipos de datos de los campos ProductId no son los mismos, para eso debes hacer un data convert despues de la tarea que devuelve los datos del excel antes de hacer el merge.

    Dentro del datareader source que se conecta a sql entra a la opcion columns y pon el mouse sobre el campo y te arrojara el tipo de dato. A ese tipo de dato es que tienes que convertir en el data convert para el excel (respeta la misma longitud del campo).

     

    Saludos,

     

    ChipChop

    jueves, 13 de septiembre de 2007 2:42
  •  Julian Castiblanco Escribió:
    Buenos Días,


    Estoy realizando un merge join en integration Services de una tabla de excel contra una
    tabla de Sql Server 2005 a la que accedo mediante una conección OLE DB. en la tabla de Sql tengo la información de la Tabla Sales.SalesOrderDetail de la base AdventureWorks y en el excel lo que hice fue pegar la información de la tabla Productio.Product.

    Cuando hago el merge join de estas dos tablas en teoría deberían hacer join todos los registros, dado que estoy haciendo el join por el campo ProductID.  Sin embargo la salida del Merge Join solo me devuelve 27 registros coincidentes.

    La pregunta es:  ¿Hay alguna propiedad extra que deba configurar, como el tamaño de un buffer?.  ¿alguien tiene idea de porque no me arroja todos los registro de la intersección dado que la tabla SalesOrderDetail tiene aproximadamente 121.000 registros?


    Gracias,

    JULIAN CASTIBLANCO P.
    julian_castiblancop@hotmail.com
    Bogotá, Colombia.



    Aparte de usar el mismo tipo de datos; Merge Join espera que ambos sets de datos esten ordenados por la columna(s) usadas en el join...para esos puedes usar un sort transformation
    jueves, 27 de septiembre de 2007 20:16