Cálculo % de Ganancia Bruta Entrada Mercancía

Un saludo para todos,

Tengo este query que me solicitaron para calcular el % de ganancia bruta en base a cada lista de precios existente en el sistema:

SELECT T0.[DocNum], T0.[DocType], T0.[CANCELED], T0.[NumAtCard], T0.[DocDate], T0.[DocDueDate], T3.[SlpName], 
T1.[Dscription],T1.[ItemCode], T2.[SWW], T0.[CardName],
T1.[Price] AS 'Costo Unitario', T1.[Quantity], T1.[Quantity] * T1.[Price] AS 'Costo Total',
(SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '2' AND Y.[ItemCode] = T1.[ItemCode]) as 'P/U Público', 
(SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '3' AND Y.[ItemCode] = T1.[ItemCode]) as 'P/U Ferretería',
(SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '4' AND Y.[ItemCode] = T1.[ItemCode]) as 'P/U Industrial'
FROM OPDN T0 INNER JOIN PDN1 T1 ON T0.[DocEntry] = T1.[DocEntry] 
INNER JOIN OITM T2 ON T2.[ItemCode] = T1.[ItemCode] 
INNER JOIN OSLP T3 ON T3.[SlpCode] = T0.[SlpCode]
ORDER BY T0.[DocNum]

Para poder realizar el cálculo del % de ganancia de acuerdo a cada lista de precios, la fórmula sería la siguiente: ((ListaPrecio-CostoUnitario)/CostoUnitario)+1

¿Cómo podría aplicar esta fórmula en base al query que tengo?
Ya que para poder sacar las listas de precios hice 3 subconsultas, pero no sé cómo podría realizar esta fórmula con ellas.

De antemano muchas gracias.

Hola.

Tal vez lo veo muy simple pero creo que ya hiciste lo más complicado, ahora solo sería cuestión de reemplazar “ListaPrecio” por la subconsulta:

((ListaPrecio-CostoUnitario)/CostoUnitario)+1

(((SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '2' AND Y.[ItemCode] = T1.[ItemCode])-T1.[Price])/T1.[Price])+1

:wink:

2 Me gusta

Muchas gracias por la rápida respuesta, efectivamente funcionó, aunque tuve que hacerle un pequeño ajuste.

Adjunto código por si es de utilidad para alguien más.

Saludos!

SELECT T0.[DocNum], T0.[DocType], T0.[CANCELED], T0.[NumAtCard], T0.[DocDate], T0.[DocDueDate], T3.[SlpName], 
T1.[Dscription],T1.[ItemCode], T2.[SWW], T0.[CardName],
T1.[Price] AS 'Costo Unitario', T1.[Quantity], T1.[Quantity] * T1.[Price] AS 'Costo Total',
(SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '2' AND Y.[ItemCode] = T1.[ItemCode]) as 'P/U Público', 
(SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '3' AND Y.[ItemCode] = T1.[ItemCode]) as 'P/U Ferretería',
(SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '4' AND Y.[ItemCode] = T1.[ItemCode]) as 'P/U Industrial',
(((SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '2' AND Y.[ItemCode] = T1.[ItemCode])-T1.[Price])/NULLIF(T1.[Price], 0))+1 AS '% Público',
(((SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '3' AND Y.[ItemCode] = T1.[ItemCode])-T1.[Price])/NULLIF(T1.[Price], 0))+1 AS '% Ferretería',
(((SELECT T4.[Price] FROM ITM1 T4 INNER JOIN OITM Y ON T4.[ItemCode] = Y.[ItemCode] WHERE T4.[PriceList] = '4' AND Y.[ItemCode] = T1.[ItemCode])-T1.[Price])/NULLIF(T1.[Price], 0))+1 AS '% Industrial'
FROM OPDN T0 INNER JOIN PDN1 T1 ON T0.[DocEntry] = T1.[DocEntry] 
INNER JOIN OITM T2 ON T2.[ItemCode] = T1.[ItemCode] 
INNER JOIN OSLP T3 ON T3.[SlpCode] = T0.[SlpCode]
ORDER BY T0.[DocNum]
2 Me gusta

Este tema se cerró automáticamente 7 días después de la última publicación. No se permiten nuevas respuestas.