Buenos días amigos, los molesto para consultarles si sabrían como hacer para que me traiga el último o solo los dos últimos precios de compra de un artículo?
El query que realice es el siguiente:
SELECT T0."CardName", T0."DocNum", T0."TransId", T0."DocDate",T1."ItemCode", T1."Dscription", T1."Quantity", T1."Price", T1."unitMsr", T2."LastPurPrc", T2."LastPurCur" FROM OPCH T0 INNER JOIN PCH1 T1 ON T0."DocEntry" = T1."DocEntry" INNER JOIN OITM T2 ON T1."ItemCode" = T2."ItemCode" WHERE T0."DocDate" >[%0] AND T0."DocDate" <=[%1]
Bendiciones Leandro, una consulta, query que tenes actualmente te pide un rango de fecha, y el resultado dentro este rango de fecha te muestra muchos articulos, lo que necesitas es que por cada articulo solo te muestre las dos últimas compras o un articulo en especial ???
solamente que me informe la última compra. Me interesa todo el listado de artículos, ya que ya existe un informe de ultimas compras que puedo optar por elegir la cantidad de ultimas compras (ejemplo 8 ultimas compras), pero solo puedo filtrar por un solo artículo y lo que quiero es por todos o por grupo.
Cualquier duda avisame.
saludos
Hola @Leandro_Barze
El siguiente query te muestra lo que necesitas:
SELECT T2."ItemCode", T2."ItemName", T2."LastPurDat", MAX (T0."DocDate") FROM OPCH T0 INNER JOIN PCH1 T1 ON T0."DocEntry" = T1."DocEntry" INNER JOIN OITM T2 ON T1."ItemCode" = T2."ItemCode" WHERE T2."LastPurDat" <> T0."DocDate" AND T2."ItemCode" = [%0] GROUP BY T2."ItemCode", T2."ItemName", T2."LastPurDat"
Buen día Leandro, solo agregale a tu consulta lo siguiente:
AND T0."TransId" IN (
SELECT MAX(T0A."TransId") "Transaccion"
FROM OPCH T0A
INNER JOIN PCH1 T1A ON T0A."DocEntry" = T1A."DocEntry" AND T1."ItemCode" = T1A."ItemCode"
WHERE T0A."DocDate" >[%0] AND T0A."DocDate" <=[%1]
)