on 01-13-2016 12:38 PM
Hola a todos.Saludos Desde Venezuela. Verán mi situación es el siguiente, tengo un Query ya diseñado que me trae los artículos con cantidad menor al Stock Mínimo en un almacén especifico. Recientemente me pidieron que este Query también se le agregue me traiga los proveedores de dicho articulo.
Anexo el query que me trae los productos con menor valor en almacén al stock mínimo
SELECT T1.ItemCode,T0.ItemName,T1.OnHand,T1.MinStock
FROM OITM T0 INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode INNER JOIN
OWHS T2 ON T1.WhsCode = T2.WhsCode WHERE T1.ONHAND<T1.MINSTOCK
AND T2.whscode='01'
Cualquier ayuda que me puedan brindar u ofrecer sera bien recibida y agradecida. Saludos
Hola Manuel.
Tienes que tener en cuenta que tal vez más de un proveedor te distribuya un solo artículo, si deseas traer un "X" proveedor puedes probar con lo siguiente:
SELECT (Select Top 1 TA.CardName FROM OPCH TA Inner Join PCH1 TB On TA.DocEntry = TB.DocEntry Where TB.ItemCode = T1.ItemCode) as Proveedor, T1.ItemCode,T0.ItemName,T1.OnHand,T1.MinStock
FROM OITM T0 INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode INNER JOIN
OWHS T2 ON T1.WhsCode = T2.WhsCode WHERE T1.ONHAND<T1.MINSTOCK
AND T2.whscode='01'
Aunque si tienes varios proveedores por artículo te podría servir mejor esto:
Select Distinct TA.CardName, T1.ItemCode,T0.ItemName,T1.OnHand,T1.MinStock
FROM OPCH TA Inner Join PCH1 TB On TA.DocEntry = TB.DocEntry Inner Join OITM T0 On TB.ItemCode = T0.ItemCode INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OWHS T2 ON T1.WhsCode = T2.WhsCode
WHERE T1.ONHAND<T1.MINSTOCK AND T2.whscode='01'
Prueba y nos comentas.
Saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Gerardo. Gracias por tu pronta respuesta. Efectivamente tengo distintos proveedores para un articulo, sin embargo el query solo me trae 1 solo proveedor cuando se que tiene mas de uno. Me imagino que ese es el ultimo que tuvo registro de compra de ese articulo... Existe la forma de que se muestren todos?
Cambiando la tabla PDCH POR OPDN y PDN1 me trae todos aunque muy desorganizado. hay una manera de organizarlos mejor? adjuntare la consulta como quedo tras ese cambio
Select Distinct TA.CardName, TA.CardCode, T1.ItemCode,T0.ItemName,T1.OnHand,T1.MinStock
FROM OPDN TA Inner Join PDN1 TB On TA.DocEntry = TB.DocEntry Inner Join OITM T0 On TB.ItemCode = T0.ItemCode INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OWHS T2 ON T1.WhsCode = T2.WhsCode
WHERE T1.ONHAND<T1.MINSTOCK AND T2.whscode='01'
order by T1.OnHand
Por lo regular trabajo sobre la OPCH y no con la OPDN por que se supone que toda entrada de mercancías debe pasar a ser factura para poder realizar el pago al proveedor, además de que el documento factura de proveedor es el único documento obligatorio en el proceso de compras, es decir, puedes crear una factura sin la necesidad de realizar una entrada de mercancías.
Si necesitas organizar tu query puedes hacerlo por medio de un Order By:
Order By T1.ItemCode, T0.ItemName, T1.OnHand, T1.MinStock, TA.CardName
Agrégalo al final de tu query, en este caso, como estamos utilizando la clausula "Distinct" te obliga a poner en el ORDER By todos los campos de la consulta, ya tu puedes jugar con el orden según como lo requieras.
Hola gerardo esto es únicamente para darte las gracias... Hace días que la consulta me funciona de maravilla. Logre ordenarla y consultar una serie de datos mas que necesitaba. Efectivamente es mejor trabajar con OPCH.. Adjuntare la consulta por si a alguien alguna vez le es útil para alguien mas.
Los datos adicionales que traen son proveedores a los que se le compro la ultima fecha de compra y el precio de dicha compra. ademas de sus telefonos...
Espero sea de ayuda para alguien mas. SALUDOS
Select Distinct T1.ItemCode,T0.ItemName,T1.OnHand,T1.MinStock,TA.CardName, TB.Price,TA.TaxDate, TA.CardCode,TC.Phone1, TC.Phone2
FROM OPCH TA Inner Join PCH1 TB On TA.DocEntry = TB.DocEntry Inner Join OCRD TC On TA.CardCode=TC.CardCode Inner Join OITM T0 On TB.ItemCode = T0.ItemCode INNER JOIN OITW T1 ON T0.ItemCode = T1.ItemCode INNER JOIN OWHS T2 ON T1.WhsCode = T2.WhsCode
WHERE T1.OnHand<T1.MinStock AND T2.whscode='01'
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
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.