Há duas situações: Vamos supor que foi pago um valor X por 100 unidades de um produto, e foram vendidos 40 no valor Y.
1 - Você que saber o lucro em cima do total? Ou seja, se foi vendido 40, quantos de lucro há em cima de todos os 100 comprados.
2 - Você quer saber o lucro em cima dos 40 vendidos? Ou seja, pegar o valor de compra de 40 unidades, e o valor de venda de 40 unidades, e verificar quanto foi obtido de lucro.
Acredito que você esteja querendo a situação 2.
Então você pode fazer o seguinte:
quantidade vendida x preço de compra = preço pago na compra
quantidade vendida x preço de venda = preço pago na venda
Com esses dois valores, você saberá que o “preço pago na compra” equivale a 100%, então pode aplicar uma regra de 3:
preço pago na compra - 100%
preço pago na venda - quantos?
O cálculo ficaria assim:
Preço pago na venda * 100 = preço pago na compra * x
Logo: x = (Preço pago na venda * 100) / preço pago na compra
Vê se isso da certo:
SELECT
P.PRO_COD,
P.PRO_DESCRICAO,
COMPRA.QTD_COMPRA AS QUANTIDADE_COMPRADA,
VENDA.QTD_VENDA AS QUANTIDADE_VENDIDA,
(COMPRA.PRECO_TOTAL_COMPRA - ((VENDA.PRECO_TOTAL_VENDA * 100) /
COMPRA.PRECO_TOTAL_COMPRA) AS LUCRO
FROM PRODUTO P,
(SELECT SUM( X.ITV_QTDE ) AS QTD_VENDA,
SUM(X.ITV_VALORCUSTO) AS PRECO_TOTAL_VENDA
FROM ITENSVENDA X INNER JOIN VENDA X1
ON X1.VEN_COD = X.VEN_COD
WHERE X.PRO_COD = P.PRO_COD) AS VENDA,
(SELECT SUM( Y.ITC_QTDE ) AS QTD_COMPRA,
SUM(Y.ITC_VALORCUSTO) AS PRECO_TOTAL_COMPRA
FROM ITENSCOMPRA Y INNER JOIN COMPRA Y1
ON Y1.COM_COD = Y.COM_COD
WHERE Y.PRO_COD = P.PRO_COD) AS COMPRA
Obs: Apenas não entendi porque você está fazendo um SUM( Y.ITC_QTDE ), você tem várias linhas de um mesmo produto, comprado em preços diferentes?