on 03-13-2015 11:58 PM
Tengo este query que funciona sin la parte del DECLARE pero necesito el costo del articulo unido a los datos.
Alguien me puede echar la mano con esto. (la parte del declare es tomado de un post de GordonDuran y funciona con algunas cosas mas, yo lo modfique aqui para ver si lo tomaba con mi query)
Declare @costox numeric
SET @costox = SELECT MAX(Price) FROM PCH1 WHERE ItemCode=T4.ItemCode AND DocDate= MAX(T3.DocDate)
SELECT DISTINCT T3.[CardName] AS Cliente,
T4.ItemCode as Articulo,
T4.[Dscription] as Descripcion,
CASE WHEN T4.Currency='USD' THEN 'USD' WHEN T4.Currency='xGF' THEN 'USD-C' WHEN T4.Currency='$' THEN 'MXP' END as MonedaLinea,
T4.Rate as 'TC-Linea',
T4.LineTotal as TotalLineaMXP,
T4.[TotalFrgn] as TotalLineaUSD,
T4.[GrssProfit] as GananciaMXP,
T4.[GrssProfFC] as GananciaUSD,
@costox,
CASE WHEN T0.[DocCurr]='USD' THEN 'USD' ELSE 'MXP' END as MonedaPago,
T2.DocRate as 'TC-Pago',
T2.[SumApplied] AS PagoMXP,
T2.[AppliedFC] as PagoUSD,
T3.[DocNum] AS Factura,
T3.[DocDate] AS FechaFactura,
T0.[DocNum] AS NumPago,
T0.[DocDate] AS FechaPago,
DATEDIFF(day, T3.docdate, getdate()) - DATEDIFF(day, T0.docdate, getdate()) as Dias,
T5.[SlpName] AS Vendedor
FROM ORCT T0 LEFT JOIN RCT1 T1 ON T0.DocEntry = T1.DocNum
INNER JOIN RCT2 T2 ON T0.DocEntry = T2.DocNum
INNER JOIN OINV T3 ON T2.DocEntry = T3.DocEntry
INNER JOIN INV1 T4 ON T3.DocEntry = T4.DocEntry
INNER JOIN OSLP T5 ON T3.SlpCode = T5.SlpCode
WHERE T0.[DocDate] >='[%0]' AND T0.[DocDate] <='[%1]'
AND T0.[JrnlMemo] <> 'Cancelado'
AND T2.InvType <> '14'
Hola Carlos.
Si lo que necesitas es el costo del artículo no veo la necesidad de una variable, puedes hacerlo con un Select anidado (resalto en negritas y subrayado):
SELECT DISTINCT T3.[CardName] AS Cliente,
T4.ItemCode as Articulo,
T4.[Dscription] as Descripcion,
CASE WHEN T4.Currency='USD' THEN 'USD' WHEN T4.Currency='xGF' THEN 'USD-C' WHEN T4.Currency='$' THEN 'MXP' END as MonedaLinea,
T4.Rate as 'TC-Linea',
T4.LineTotal as TotalLineaMXP,
T4.[TotalFrgn] as TotalLineaUSD,
T4.[GrssProfit] as GananciaMXP,
T4.[GrssProfFC] as GananciaUSD,
(Select TA.AvgPrice FROM OITM TA Where TA.ItemCode = T4.ItemCode) as Costox,
CASE WHEN T0.[DocCurr]='USD' THEN 'USD' ELSE 'MXP' END as MonedaPago,
T2.DocRate as 'TC-Pago',
T2.[SumApplied] AS PagoMXP,
T2.[AppliedFC] as PagoUSD,
T3.[DocNum] AS Factura,
T3.[DocDate] AS FechaFactura,
T0.[DocNum] AS NumPago,
T0.[DocDate] AS FechaPago,
DATEDIFF(day, T3.docdate, getdate()) - DATEDIFF(day, T0.docdate, getdate()) as Dias,
T5.[SlpName] AS Vendedor
FROM ORCT T0 LEFT JOIN RCT1 T1 ON T0.DocEntry = T1.DocNum
INNER JOIN RCT2 T2 ON T0.DocEntry = T2.DocNum
INNER JOIN OINV T3 ON T2.DocEntry = T3.DocEntry
INNER JOIN INV1 T4 ON T3.DocEntry = T4.DocEntry
INNER JOIN OSLP T5 ON T3.SlpCode = T5.SlpCode
WHERE T0.[DocDate] >= '[%0]' AND T0.[DocDate] <='[%1]'
AND T0.[JrnlMemo] <> 'Cancelado'
AND T2.InvType <> '14'
Suerte.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Muchas gracias por contestar, no habia visto ese campo.....al sacar el query ya me da iformacion, solo que no es el costo actual, este costo era en el momento de la operacion? Ya que no es el ultimo precio determinado ni el ultimo precio de compra, imagino que es el costo en ese momento de la operacion. ??
User | Count |
---|---|
107 | |
12 | |
11 | |
6 | |
5 | |
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.