on 06-14-2010 9:13 PM
Necesito hacer un informe que muestre todas las compras a proveedores. Las columnas que debo indicar son la de ItemCode, Dscrption, Fecha ultima compra, cantidad ultima compra, comprometid, cantidad disponible
Se que tengo que hacer el select de la PDN1, pero lo qeu no tengo claro como puedo sacar la fecha y la cantidad de la ultima compra.
Saludos
estas tomando la entrada de mercancía, entonces?, quieres que te la ligue a la factura del proveedor o como?. o solo a la orden de compra?...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
para mi una compra es cuando ya se envio la orden de compra al proveedor. y tendría que hace rla consulta la tabla de , ALGO ASI COMO ESTO:
SELECT T0.[DocNum], T1.[ItemCode], T1.[Dscription],
T0.[DocDate], T0.[CardCode], T0.[CardName], T0.[DocTotal]
FROM OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.DOCDATE=[%0]
Aunque lo mas correcto, sería hacerlo desde la factura, ya que la entrega se desprende la orden de compra y a veces no metes todo lo que viene en tu orden de compra.
Saludos
Edited by: mary merecias on Jun 14, 2010 2:44 PM
esto te puede ayudar a guiarte. creo que es lo que quieres... pero aqui veo que tiene que ser contra facturas el reporte.
SELECT DISTINCT(T0.[CardCode]), T0.CARDNAME,t1.doctotal,t1.docnum,
(SELECT MAX(DOCDATE)
FROM OPOR WHERE CARDCODE=T0.CARDCODE) as 'ultima fecha'
FROM OCRD T0 INNER JOIN OPOR T1 ON T0.CardCode = T1.CardCode
WHERE (SELECT MAX(DOCDATE) FROM OPOR WHERE CARDCODE=T0.CARDCODE)=t1.docdate
te traerá todas las últimas compras tomando referencia una última fecha. oks?. saludos, espero que te sirva.
Hola, tome el codigo que me proporcionaste pero en base a la entrada de mercancia. Le agregue una linea que tambien debe traer la cantidad de la ultima compra, pero como puse MAX(Quantity) me trae la cantidad mas alta de esa entrada. Necesito que me traiga la cantidad de cada item.
SELECT DISTINCT(T0.CardCode), T0.CARDNAME,t1.doctotal,t1.docnum,T2.Itemcode as 'Código', t2.Dscription as 'Descripcion del Producto',
(SELECT MAX(DOCDATE) FROM OPDN WHERE CARDCODE = T0.CARDCODE) as 'Fecha Ultima Compra',
(SELECT MAX(Quantity) FROM PDN1 WHERE DocEntry = T1.DocEntry) AS 'Cantidad Ultima Compra',
T3.IsCommited as 'Comprometido',T3.Onhand as 'Cantidad Disponible'
FROM OCRD T0 INNER JOIN OPDN T1 ON T0.CardCode = T1.CardCode
INNER JOIN PDN1 T2 ON T1.DocEntry = T2.DocEntry
INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode
WHERE (SELECT MAX(DOCDATE) FROM OPDN WHERE CARDCODE = T0.CARDCODE) = T1.docdate
Group by T0.CardCode, T0.Cardname,T1.DocNum,t1.DocTotal,T1.DocDate, T2.ItemCode, T2.Dscription, T3.IsCommited,T3.Onhand, T2.Quantity, T1.DocEntry
Finalmente me quedo asi
DECLARE @proveedor AS NVARCHAR (40)
/* WHERE */
SET @proveedor = /* T0.CardCode */ '[%1]'
SELECT DISTINCT(T0.CardCode), T0.CARDNAME,t1.doctotal,t1.docnum,T2.Itemcode as 'Código', t2.Dscription as 'Descripcion del Producto',
(SELECT MAX(DOCDATE) FROM OPDN WHERE CARDCODE = T0.CARDCODE) as 'Fecha Ultima Compra', T2.Quantity AS 'Cantidad Ultima Compra',
T3.IsCommited as 'Comprometido',T3.Onhand as 'Cantidad Disponible'
FROM OCRD T0 INNER JOIN OPDN T1 ON T0.CardCode = T1.CardCode
INNER JOIN PDN1 T2 ON T1.DocEntry = T2.DocEntry
INNER JOIN OITM T3 ON T2.ItemCode = T3.ItemCode
WHERE ((SELECT MAX(DOCDATE) FROM OPDN WHERE CARDCODE = T0.CARDCODE) = T1.docdate
AND
T1.cardcode = @proveedor OR @proveedor = RTRIM(ISNULL('','')))
Group by T0.CardCode, T0.Cardname,T1.DocNum,t1.DocTotal,T1.DocDate, T2.ItemCode, t3.itemcode,
T2.Dscription, T3.IsCommited,T3.Onhand, T2.Quantity, T1.DocEntry
Hola Estimado...
Los datos que necesitas se encuentran en la tabla de artículos, es decir, en OITM.
Son los campos LastPurPrc (Último precio de Compra) y LastPurDat (Última fecha de Compra), por lo cual haces un Inner join directamente a esta tabla, podrías partir del query:
SELECT T1.[ItemCode], T1.[Dscription], T2.[LastPurPrc], T2.[LastPurDat] FROM OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
, luego aplicas el filtro que estimes conveniente.
Saludos Cordiales,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
98 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.