none
Pregunta Basica RRS feed

  • Pregunta

  • Antes que nada estoy nuevo en sql..

    Hola que tal buenas tardes estoy tratando de hacer una consulta 

    Como ven tengo dos tablas de inventario detallado, en la primera inventario en general

    INV_ARTI

    CODIGO_CIA

    NUMERO_ARTICULO

    DESCRIP_ART_1

    PRECIO

    NUMERO_ARANCEL

    PUNTO_REORDEN

    La segunda con unos detalles adicionales

    INV_ARTI_DET

    CODIGO_CIA

    NUMERO_ARTICULO

    NUMERO_ARTICULO_DE

    CANTIDAD_ARTICULOS

    FECHA_CREACION


    Para explicar mejor lo que quiero introduzco unos datos

    SIF_INV_ARTI

    CODIGO_CIA

    NUMERO_ARTICULO

    DESCRIP_ART_1

    PRECIO

    NUMERO_ARANCEL

    PUNTO_REORDEN

    55                 

    100

    CANASTA#1                          

    275

    0

    0

    55                 

    110

    CANASTA#2                         

    280

    0

    0

    55

    200

    Licor #1

    55

    0

    0

    55

    210

    Licor #2

    47

    0

    0

    55

    220

    Licor #3

    58

    0

    0

    55

    230

    Licor #4

    49

    0

    0

    Esta es la segunda tabla

    SIF_INV_ARTI_DET

    CODIGO_CIA

    NUMERO_ARTICULO

    NUMERO_ARTICULO_DE

    CANTIDAD_ARTICULOS

    FECHA_CREACION

    55

    100

    200

    1

    -

    55

    100

    210

    1

    -

    55

    100

    220

    1

    -

    55

    110

    210

    1

    -

    55

    110

    220

    1

    -

    55

    110

    230

    1

    -

    Esta es la salida que necesito, como ven no se ve tan complicado pero aun no doy con la respuesta.. en la salida necesito mostrar todo lo que sea canasta y su contenido, la canasta al igual que el licor es un producto o artículo, pero una canasta puede tener más de un artículo que tengo que describir que se guarda en la columna DESCRIP_ART_1 que pareciera tengo que repetir siempre y cuando se parezca a la columna de NUMERO_ARTICULO_DE

    SALIDA

    CODIGO_CIA

    NUMERO_ARTICULO

    DESCRIP_ART_1

    NUMERO_ARTICULO_DE

    DESCRIP_ART_1

    55                 

    100

    CANASTA#1                          

    210

    Licor #2

    55                 

    100

    CANASTA#1                        

    220

    Licor #3

    55

    100

    CANASTA#1                        

    230

    Licor #4

    55

    110

    CANASTA#2                         

    200

    Licor #1

    55

    110

    CANASTA#2                         

    220

    Licor #3

    55

    110

    CANASTA#2                         

    230

    Licor #4

                   

    Si me pueden dar una mano se los agradeceria               

    lunes, 27 de mayo de 2013 20:22

Respuestas

  • Bueno, el script sql que enviaste es tan grande que el SQL Server Management Studio no puede con él y me da OutOfMemoryException al intentar ejecutarlo, así que lo he tenido que ejecutar con el SqlCmd.

    Quería comentarte que todas las tablas deberían tener clave primaria, las tuyas no la tienen, y que no todos los campos deberían admitir valores nulos.

    De cualquier forma aquí tienes la consulta. Si no es lo que quieres dilo y la modificamos:

    SELECT
    	D.CODIGO_CIA, 
    	D.NUMERO_ARTICULO, A.DESCRIP_ART_1,
    	D.NUMERO_ARTICULO_DE, AD.DESCRIP_ART_1
    FROM 
    	dbo.SIF_INV_ARTI_DET D
    	INNER JOIN dbo.SIF_INV_ARTI A 
    		ON D.CODIGO_CIA = A.CODIGO_CIA AND D.NUMERO_ARTICULO = A.NUMERO_ARTICULO
    	INNER JOIN dbo.SIF_INV_ARTI AD
    		ON D.CODIGO_CIA = AD.CODIGO_CIA AND D.NUMERO_ARTICULO_DE = AD.NUMERO_ARTICULO
    WHERE
    	A.DESCRIP_ART_1 LIKE 'CANASTA%'

    miércoles, 29 de mayo de 2013 9:52

Todas las respuestas

  • La pregunta te ha quedado muy bien formateada, pero es mucho más útil para nosotros que nos proporciones un script con la creación de las tablas y la inserción de datos. Así podremos darte una respuesta más rápida, sin tener que crear nosotros esas instrucciones, a ti te cuesta mucho menos:

    http://portalsql.com/index.php/2011/12/generando-script-con-los-inserts-de-una-tabla/

    lunes, 27 de mayo de 2013 20:32
  • Muchas gracias Jesús si me das tu correo para compartirte el archivo que acabo de generar gracias al tutorial que me enviaste

    saludos

    lunes, 27 de mayo de 2013 21:24
  • copia el contenido aquí, así no solamente jesús puede ayudarte.

    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    martes, 28 de mayo de 2013 7:05
    Moderador
  • Tienes razón Miguel,  adjunto el link de descarga del archivo 

    saludos y gracias por la ayuda


    Link de Descarga
    martes, 28 de mayo de 2013 14:30
  • Bueno, el script sql que enviaste es tan grande que el SQL Server Management Studio no puede con él y me da OutOfMemoryException al intentar ejecutarlo, así que lo he tenido que ejecutar con el SqlCmd.

    Quería comentarte que todas las tablas deberían tener clave primaria, las tuyas no la tienen, y que no todos los campos deberían admitir valores nulos.

    De cualquier forma aquí tienes la consulta. Si no es lo que quieres dilo y la modificamos:

    SELECT
    	D.CODIGO_CIA, 
    	D.NUMERO_ARTICULO, A.DESCRIP_ART_1,
    	D.NUMERO_ARTICULO_DE, AD.DESCRIP_ART_1
    FROM 
    	dbo.SIF_INV_ARTI_DET D
    	INNER JOIN dbo.SIF_INV_ARTI A 
    		ON D.CODIGO_CIA = A.CODIGO_CIA AND D.NUMERO_ARTICULO = A.NUMERO_ARTICULO
    	INNER JOIN dbo.SIF_INV_ARTI AD
    		ON D.CODIGO_CIA = AD.CODIGO_CIA AND D.NUMERO_ARTICULO_DE = AD.NUMERO_ARTICULO
    WHERE
    	A.DESCRIP_ART_1 LIKE 'CANASTA%'

    miércoles, 29 de mayo de 2013 9:52
  • Muchas gracias Jesús, si es un poco grande debido a la cantidad de datos que tiene esa tabla, es una extracción de Adabas, lo de las llaves eso si esta en proceso de cambio y todo lo demás.

    Exactamente me da un resultado que hice primeramente, pero me ayudo un mundo por no decir que todo, para resolver mi inquietud, mas que todo lo que hice fui invertir algo las tablas porque como en tu código solo muestra las canastas, hay que tener en cuenta que no solo los productos llamados "Canastas" son canastas hay otros que son canastas y que están incluidos y si te fijas en la columna nombre_cia, solo se ven productos de la compañía 02 y en otras tambien existen canastas.

    mira este fue el código que use, básicamente es el  mismo que hiciste solo que lo ajuste a mis necesidades, el que me enviaste como te comente fue lo que me ayudo con esta duda

    SELECT

    D.CODIGO_CIA, D.NUMERO_ARTICULO, D.DESCRIP_ART_1, A.NUMERO_ARTICULO_DE, AD.DESCRIP_ART_1 FROM dbo.SIF_INV_ARTI D INNER JOIN dbo.SIF_INV_ARTI_DET A ON D.NUMERO_ARTICULO = A.NUMERO_ARTICULO INNER JOIN dbo.SIF_INV_ARTI AD ON AD.CODIGO_CIA = A.CODIGO_CIA AND A.NUMERO_ARTICULO_DE = AD.NUMERO_ARTICULO


    Muchisimas gracias Jesus

    miércoles, 29 de mayo de 2013 20:18