cancel
Showing results for 
Search instead for 
Did you mean: 

ULTIMO PRECIO DE COMPRA DE UN ARTICULO

Former Member
0 Kudos
3,231

Estimados, buenas noches.

favor alguien tiene por algún query que pueda sacar el ultimo precio de compra de articulo en las Ordenes de compra (Pedido), tengo un requerimiento que estoy tratando de sacar aun sin éxito, por lo que me ayudaría mucho contar con alguna sugerencia u ejemplo que me pueda servir para desarrollar este reporte.

según se me esta solicitando es que busque el ultimo precio de compra de 1 articulo por fechas en un año, si en una fecha hay mas de 2 Ordenes de compra (Pedido)

favor estimados ojala me puedan brindar sus apoyos, cualquier consejo sera agradecido..

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

No te sirvió Carlos ?

agustin_marcoscividanes
Active Contributor
0 Kudos

Hola

Comprueba si esta query es lo que necesitas:

select Top 1 T1.PriceAfVAT from por1 T1 inner join opor T0 on T0.docentry = T1.DocEntry where T0.DocDate >= '01/01/2012' and T0.DocDate

Un saludo

Agustín Marcos Cividanes

former_member204202
Active Participant
0 Kudos

Hola Carlos, porque no te ves este tema, igual y puedes adaptar ese reporte a tus necesidades e incluso mejorar lo que te piden.Trabajalo a tu manera y donde topes nos comentas para ver en que te colaboramos ok

Saludos

Former Member
0 Kudos

Hola Alberto, buenas tardes.

Ante todo agradezco tu interés para con mi duda. bueno con el query que me proporcionaste he adaptado a lo que requiero pero aun tengo inconvenientes para poder obtener solo el ultimo precio de la ultima OC (Pedido) , pues si para una fecha el articulo tiene mas de una OC entonces solo obtener el precio mayor de entre toda esta fecha.

este mas o menos es lo que estoy armando..

Select

c.DocNum 'NroOC'

,C.DocDate 'Fecha OC'

,a.itemcode'Codigo'

,a.itemname'Ariculo'

,c.DocCur as [Moneda]

,b.price'Prec Original'

,(SELECT X.Rate FROM ORTT X WHERE X.RateDate='31/12/2012' AND X.Currency='$')as [TC]

,(SELECT X.RateDate FROM ORTT X WHERE X.RateDate='31/12/2012' AND X.Currency='$')as [Fecha TC]

,case WHEN c.DocCur='S/' then B.Price ELSE B.Price*(SELECT X.Rate FROM ORTT X WHERE X.RateDate='31/12/2012' AND X.Currency='$')end 'Precio MN'

,(SELECT X.Rate FROM ORTT X WHERE X.RateDate='31/12/2012' AND X.Currency='$')as [TC]

,(SELECT X.RateDate FROM ORTT X WHERE X.RateDate='31/12/2012' AND X.Currency='$')as [Fecha TC]

from oitm a

inner join por1 b on a.itemcode = b.itemcode

INNER JOIN OPOR C ON b.DocEntry=C.DocEntry

where 1=1

and b.docdate =(select max(docdate) from por1 x where x.itemcode = a.itemcode)

and a.itemcode IN (SELECT 'H'+AR.U_CODIGO FROM SBO_PRUEBAS_151113..[@ARTICULOS_COSTOS] AR)

AND C.CANCELED<>'Y'

AND year(C.DocDate)='2012'

Former Member
0 Kudos

David, buenas tardes.

se agradece el interés, pero lo que me recomiendas es de todas las OC (Pedidos) y lo que deseo es el precio de compra de un articulo según su ultima OC.

former_member204202
Active Participant
0 Kudos

Ok carlos en la OITM hay una columna que hacer referencia a esto OITM.LastPurPrc 'ULTIMO PRECIO DE COMPRA' solo adaptalo a tu consulta. Ve si te sirve

saludos

Former Member
0 Kudos

David. se agradece nuevamente por la atención.

según revisión el campo que mencionas guarda solo el ultimo precio pero no aplicaría a mi requerimiento ya que lo solicitado es buscar por un periodo (2012).

ARTICULO 01      - OC 01          FECHA 01     - PRECIO 10

                          - OC 02          FECHA 02     - PRECIO 11

                          - OC 03          FECHA 02     - PRECIO 11.5 - PRECIO 12

El resultado debería ser: ARTICULO 01 en la OC 03 de la fecha 02 hay 2 precio el cual se debe de tomar la máxima fecha y el máximo precio en la OC encontrada.

Former Member
0 Kudos

Carlos, aqui esta el query, con el ultimo precio, seleccionando el mas alto cuando hay 2 o mas ordenes el mismo dia, saludos !

Select

x.itemcode,

x.itemname,

x.price,

x.docdate

from (

Select

a.itemcode,

a.itemname,

b.price,

b.docdate

from

oitm a inner join  por1 b on a.itemcode = b.itemcode

where

b.docdate = (select max(q.docdate) from por1 q where q.itemcode = a.itemcode) and a.itemcode = '[%0]'

) x

where x.price = (select max(z.price) from oitm y inner join  por1 z on y.itemcode = z.itemcode

                          where

                               z.docdate = (select max(r.docdate) from por1 r where r.itemcode = y.itemcode) and y.itemcode = '[%0]')

Former Member
0 Kudos

Hola Carlos,

Prueba este query

Select

a.itemcode, a.itemname, b.price, b.docdate

from 

oitm a inner join  por1 b on a.itemcode = b.itemcode

where

b.docdate =(select max(docdate) from por1 where itemcode = a.itemcode) and a.itemcode = '[%0]'

Saludos