lunes, 15 de septiembre de 2014

Query de Acuerdos y Despachos

Este query nos devolverá la información de los Acuerdos de Compra Abierta y sus Despachos con la información de cada Articulo del Acuerdo.

SELECT PHA.SEGMENT1 ACUERDO,
       PRA.RELEASE_NUM DESPACHO,
       PLLA.SHIPMENT_NUM ENVIO,
       PLA.ITEM_DESCRIPTION,
       PLLA.QUANTITY CANTIDAD,
       MTL.ORGANIZATION_CODE ORG_ENVIO,
       (PLLA.PRICE_OVERRIDE*PLLA.QUANTITY)  PRECIO,
       PLLA.NEED_BY_DATE NECESARIO_PARA
  FROM PO_HEADERS_ALL        PHA,
       PO_LINES_ALL          PLA,
       PO_RELEASES_ALL       PRA,
       PO_LINE_LOCATIONS_ALL PLLA,
       MTL_PARAMETERS       MTL
 WHERE PHA.TYPE_LOOKUP_CODE = 'BLANKET'
   AND PHA.PO_HEADER_ID = PLA.PO_HEADER_ID
   AND PRA.PO_HEADER_ID = PHA.PO_HEADER_ID
   AND PLLA.PO_RELEASE_ID = PRA.PO_RELEASE_ID
   AND PLLA.PO_HEADER_ID = PRA.PO_HEADER_ID
   AND PLLA.PO_LINE_ID = PLA.PO_LINE_ID
   AND MTL.ORGANIZATION_ID = PLLA.SHIP_TO_ORGANIZATION_ID
   AND (PHA.SEGMENT1 =&ACUERDO OR &ACUERDO IS NULL )
   AND (RELEASE_NUM =&DESPACHO OR &DESPACHO IS NULL )

2 comentarios:

  1. genial man,tienes algún query de comparar tablas, tengo cuentas que debo filtrar aquellos que no tengan movimiento en los últimos 6 meses, toy usando months_between debo ponerlo dentro de having o where

    ResponderEliminar
    Respuestas
    1. Puedes usar el where bajo la siguiente forma:

      where MONTHS_BETWEEN(sysdate, transaction_date) <
      MONTHS_BETWEEN(sysdate, TO_DATE('01/01/2015', 'dd/mm/yyyy'))

      si es un proceso lo que estas haciendo sugiero crear una tabla temporal y cada vez que almacenes movimientos cada 6 meses este guarde solo lo nuevo , podrías apoyarte con la funcion merge para comparar tablas

      http://profesionghh.blogspot.com/2014/03/la-sentencia-merge.html

      Eliminar