CATÁLOGO DE ARTÍCULOS OBTENIDO MEDIANTE QUERY DYNAMICS AX 2012

Que Tal, realice la siguiente consulta para obtener el catálogo de artículos por empresa.

El tema es que se supone que son las mismas tablas con los mismo joins, pero algunas empresas se tarda más que en otras, es decir, en algunas no tarda menos de 3 min y en otras tarda más de 20 min.

Mi pregunta es: ¿se puede optimizar más la consulta, teniendo en cuenta que algunos datos sólo es posible obtenerlos con un 'CASE' , a continuación muestra el query.

SELECT erp.displayproductnumber                      DYSPLAY_PRODUCT
               ,it.itemid                                              CÓDIGO_ARTÍCULO
               ,erpt.name                                           NOMBRE_ARTÍCULO
               ,it.namealias                                        NOMBRE_BÚSQUEDA
               ,CASE ersdgi.storagedimensiongroup
                 WHEN '5637144576' THEN 'DIM01'
                 WHEN '5637144577' THEN 'DIM04'
                END                                                     DIM_ALMACENAMIENTO
               ,CASE ersdgi.storagedimensiongroup
                 WHEN '5637144576' THEN 'SITIO-ALMACEN'
                 WHEN '5637144577' THEN 'SITIO-ALMACEN - LOCALIDAD'
               END                                                      DESCRIPCIÓN_DIM_INV
              ,CASE ertdgi.trackingdimensiongroup
                WHEN '5637144576' THEN 'AF'
                WHEN '5637144577' THEN 'DIM07'
                WHEN '5637144578' THEN 'DIM05'
                WHEN '5637144579' THEN 'DIM06'
              END                                                        DIM_SEGUIMIENTO
              ,CASE ertdgi.trackingdimensiongroup
                WHEN '5637144576' THEN 'ACTIVO FIJO'
                WHEN '5637144577' THEN 'LOTE'
                WHEN '5637144578' THEN 'LOTE FINANCIERO'
                WHEN '5637144579' THEN 'NO APLICA LOTE-SERIE'
              END                                                         DESCRIPCIÓN_DIM_SEG
             ,imgi.modelgroupid                                      GPO_MODELO_ART
             ,iigi.itemgroupid                                          GPO_ART
             ,it.PdsShelfLife                                          PERIODO_VIDA_UTIL_DÍAS
             ,CASE iisst.defaultordertype
               WHEN '0' THEN 'ORDEN DE COMPRA'
               WHEN '1' THEN 'PRODUCCIÓN'
             END TIPO_ORDEN
             ,CAST ((ROUND(it.PmfYieldPct,0)) AS INT) PORCENTAJE_RENDIMIENTO
            ,CASE it.PmfProductType
               WHEN '1' THEN 'CO-PRODUCTO'
               WHEN '2' THEN 'PRODUCTO_DERIVADO'
               WHEN '0' THEN 'NINGUNO'
               WHEN '3' THEN 'ARTÍCULO_PLANIFICACIÓN'
               WHEN '4' THEN 'L.MAT'
               WHEN '5' THEN 'FORMULA'
              END TIPO_PRODUCCIÓN
            ,CASE erp.ProductType
              WHEN '1' THEN 'ARTÍCULO'
              WHEN '2' THEN 'SERVICIO'
            END TIPO_PRODUCTO
           ,it.bomunitid UNIDAD_LIST_MAT
           ,(SELECT itm.unitid
                FROM InventTableModule   itm
              WHERE it.itemid             =    itm.itemid
                   AND itm.moduletype   =    0
                   AND it.dataareaid       =    itm.dataareaid
             )                                                                   UNIDAD_INV
           ,(SELECT itm.taxitemgroupid
                FROM InventTableModule    itm
              WHERE it.itemid             =    itm.itemid
                   AND itm.moduletype   =    0
                   AND it.dataareaid        =    itm.dataareaid
            )                                                                    GPO_IMP_INV
          ,(SELECT itm.unitid
              FROM InventTableModule itm
            WHERE it.itemid               =  itm.itemid
                 AND itm.moduletype     =  1
                 AND it.dataareaid         = itm.dataareaid
             )                                                                    UNIDAD_COMPRA
           ,(SELECT itm.taxitemgroupid
               FROM InventTableModule itm
             WHERE it.itemid             =   itm.itemid
                  AND itm.moduletype   =   1
                  AND it.dataareaid       =   itm.dataareaid
             )                                                                    GPO_IMP_COMPRA
           ,(SELECT itm.unitid
               FROM InventTableModule itm
             WHERE it.itemid            =   itm.itemid
                  AND itm.moduletype  =  2
                  AND it.dataareaid = itm.dataareaid
            )                                                                     UNIDAD_VENTA
          ,(SELECT itm.taxitemgroupid
               FROM InventTableModule   itm
             WHERE it.itemid            =  itm.itemid
                  AND itm.moduletype  = 2
                  AND it.dataareaid      = itm.dataareaid
             )                                                                    GPO_IMP_VENTA
           ,CASE it.costmodel
             WHEN 0 THEN 'NO'
             WHEN 1 THEN 'SÍ'
             WHEN 255 THEN 'SÍ'
           END                                                                  ULTIMO_PRECIO_COSTO
         ,CASE it.purchmodel
           WHEN 0 THEN 'NO'
           WHEN 1 THEN 'SÍ'
           WHEN 255 THEN 'SÍ'
         END                                                                    ULTIMO_PRECIO_COMPRA
      ,(SELECT CONVERT(FLOAT,ROUND(itm.underdeliverypct,2,1))
           FROM InventTableModule itm
         WHERE it.itemid             = itm.itemid
              AND itm.moduletype   = 1
              AND it.dataareaid       = itm.dataareaid
        )                                                                             PERMITIDO_EXCESO 
     ,(SELECT CONVERT(FLOAT,ROUND(itm.underdeliverypct,2,1))
          FROM InventTableModule itm
         WHERE it.itemid             =   itm.itemid
             AND   itm.moduletype  =  1
             AND it.dataareaid        = itm.dataareaid
       )                                                                              PERMITIDO_NO_ENTREGADO
      ,erpt.languageid                                                         IDIOMA
      ,UPPER(it.dataareaid)                                                EMPRESA
     ,(SELECT CONVERT(FLOAT,ROUND(itm.price,2,1))
           FROM InventTableModule     itm
         WHERE it.itemid            = itm.itemid
              AND itm.moduletype = 0
              AND it.dataareaid      = itm.dataareaid
       )                                                                               PRECIO_COSTO
       ,it.itembuyergroupid                                                   GPO_COMPRADOR
       ,CASE erpc.category
WHEN '5637144577' THEN 'ACTIVO FIJO'
WHEN '5637144578' THEN 'AGROQUIMICO'
WHEN '5637144579' THEN 'AUTOMOTRIZ'
WHEN '5637146078' THEN 'BOTE HOJALATA'
WHEN '5637144580' THEN 'CAJA PLASTICO'
WHEN '5637144581' THEN 'CHAROLA CARTON'
WHEN '5637144582' THEN 'CHAROLA FOAM'
WHEN '5637144583' THEN 'CHAROLA RPET'
WHEN '5637144584' THEN 'COMBUSTIBLES'
WHEN '5637144576' THEN 'COMPRAS MB'
WHEN '5637144585' THEN 'COMPUTO'
WHEN '5637144586' THEN 'CONTRAINCENDIO'
WHEN '5637144587' THEN 'CORRUGADO'
WHEN '5637144588' THEN 'ELECTRICIDAD'
WHEN '5637144589' THEN 'ELECTRONICO'
WHEN '5637144590' THEN 'EQ MEDICION'
WHEN '5637144591' THEN 'EQ SEGURIDAD'
WHEN '5637144592' THEN 'ETIQUETA'
WHEN '5637144593' THEN 'FERRETERIA'
WHEN '5637144594' THEN 'FLETES'
WHEN '5637144595' THEN 'FORMATOS'
WHEN '5637144596' THEN 'FUMIGACION'
WHEN '5637144597' THEN 'HERRAMIENTA'
WHEN '5637144598' THEN 'IMPORTACION'
WHEN '5637144599' THEN 'INDUSTRIAL'
WHEN '5637144600' THEN 'INTERCOMPANIAS'
WHEN '5637144601' THEN 'LABORATORIO'
WHEN '5637144602' THEN 'LIMPIEZA'
WHEN '5637144603' THEN 'LUBRICANTES'
WHEN '5637144604' THEN 'MADERA'
WHEN '5637144605' THEN 'MAQUINADOS'
WHEN '5637144606' THEN 'MAQUINARIA'
WHEN '5637144607' THEN 'MEDICAMENTO'
WHEN '5637144608' THEN 'MOBILIARIO'
WHEN '5637144609' THEN 'OTROS ADMINISTRACION'
WHEN '5637144610' THEN 'OTROS EMPAQUE'
WHEN '5637144611' THEN 'OTROS MP'
WHEN '5637144612' THEN 'PAILERIA'
WHEN '5637144613' THEN 'PAJA'
WHEN '5637144614' THEN 'PAPELERIA'
WHEN '5637144615' THEN 'PEATMOSS'
WHEN '5637144616' THEN 'PINTURA'
WHEN '5637144617' THEN 'PLASTICO'
WHEN '5637144618' THEN 'POLLINAZA'
WHEN '5637145326' THEN 'PRODUCTO NUEVO'
WHEN '5637144619' THEN 'QUIMICOS'
WHEN '5637144620' THEN 'REFRIGERACION'
WHEN '5637144621' THEN 'SEGUROS'
WHEN '5637144622' THEN 'SEMILLA'
WHEN '5637144623' THEN 'SERVICIOS'
WHEN '5637146076' THEN 'TARIMA MADERA'
WHEN '5637144624' THEN 'UNIFORMES'
WHEN '5637146077' THEN 'VITAFILM'
END CATEGORÍA_COMRPAS
FROM InventTable it1 LEFT OUTER JOIN EcoResProductCategory erpc
           ON it1.product = erpc.product
         ,EcoResProductTranslation                  erpt
         ,EcoResStorageDimensionGroupItem   ersdgi
         ,EcoResTrackingDimensionGroupItem  ertdgi
         ,InventModelGroupItem                        imgi
         ,InventItemGroupItem                          iigi
         ,InventTable                                        it
         ,InventItemSetupSupplyType                iisst
         ,EcoResProduct                                  erp
WHERE 1 = 1
AND erpt.product = it.product
AND it.itemid       = ersdgi.itemid
AND it.dataareaid = ersdgi.itemdataareaid
AND it.itemid       = ertdgi.itemid
AND it.dataareaid = ertdgi.itemdataareaid
AND it.itemid       = imgi.itemid
AND it.itemid       = iigi.itemid
AND it.dataareaid = imgi.itemdataareaid
AND it.dataareaid = iigi.itemdataareaid
AND erp.recid       = it.product
AND it1.product    = it.product
AND it.itemid        = iisst.itemid
AND iisst.itemid   = ersdgi.itemid
AND iisst.itemid   = ertdgi.itemid
AND it.dataareaid = iisst.itemdataareaid
AND ersdgi.itemdataareaid = iisst.itemdataareaid
AND ertdgi.itemdataareaid = iisst.itemdataareaid
AND iisst.itemid   = imgi.itemid
AND iisst.itemid   = iigi.itemid
AND it.dataareaid = 'MGA' -- BÚSQUEDA POR EMPRESA
--AND it.itemid LIKE 'Z%'-- BÚSQUEDA POR ARTÍCULO
--AND erpt.name LIKE '%POLLINAZA%'
--AND iigi.itemgroupid LIKE 'P%' -- BÚSQUEDA POR GRUPO DE ARTÍCULO
GROUP BY it.itemid
,erpt.name
,it.namealias
,storagedimensiongroup
,trackingdimensiongroup
,it.bomunitid
,imgi.modelgroupid
,it.dataareaid
,iigi.itemgroupid
,erp.displayproductnumber
,it.costmodel
,erp.producttype
,it.PmfYieldPct
,it.itembuyergroupid
,it.PdsShelfLife
,it.PmfProductType
,erp.ProductType
,it.purchmodel
,erpt.languageid
,erpc.category
,iisst.defaultordertype
ORDER BY 1

Visitas: 32

Archivos adjuntos

Responde a esto

© 2017   Creado por Antonio Gilabert.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio