Me ajudem pessoal. Eu fiz um inner join com duas subqueries e agora queria saber como deixar o código mais user friendly. Está muito emaranhado.
--SUBQUERY
--PEGA O ANO EM NOTAS FISCAIS E CALCULA O IMPOSTO TOTAL PARA CADA ANO
SELECT YEAR(DATA) AS DATA, FLOOR(SUM(IMPOSTO * QUANTIDADE)) AS TOTAL_IMPOSTO
FROM [NOTAS FISCAIS] NF
INNER JOIN [ITENS NOTAS FISCAIS] INF ON NF.NUMERO = INF.NUMERO
GROUP BY YEAR(DATA) ORDER BY DATA
--SUBQUERY
--MULTIPLICA QUANTIDADE DE ITENS PELO LUCRO // ,NOTAS FISCAIS * ITENS NOTAS FISCAIS
SELECT YEAR(DATA) AS 'ANO',COUNT(*) AS 'Q. VENDAS', FLOOR(SUM(QUANTIDADE * PREÇO)) AS 'LUCRO NAO DESCONTADO' FROM [NOTAS FISCAIS] INNER JOIN
[ITENS NOTAS FISCAIS] ON [NOTAS FISCAIS].NUMERO = [ITENS NOTAS FISCAIS].NUMERO
GROUP BY YEAR(DATA) ORDER BY ANO
--INNER JOIN
SELECT I.DATA, I.TOTAL_IMPOSTO AS IMPOSTO, L.LUCRO AS VBRUTO, SUM(L.LUCRO - I.TOTAL_IMPOSTO) AS VLUCRO FROM (SELECT YEAR(DATA) AS DATA, FLOOR(SUM(IMPOSTO * QUANTIDADE)) AS TOTAL_IMPOSTO
FROM [NOTAS FISCAIS] NF
INNER JOIN [ITENS NOTAS FISCAIS] INF ON NF.NUMERO = INF.NUMERO
GROUP BY YEAR(DATA)) I INNER JOIN (SELECT YEAR(DATA) AS 'ANO',COUNT(*) AS 'Q. VENDAS', FLOOR(SUM(QUANTIDADE * PREÇO)) AS 'LUCRO' FROM [NOTAS FISCAIS] INNER JOIN
[ITENS NOTAS FISCAIS] ON [NOTAS FISCAIS].NUMERO = [ITENS NOTAS FISCAIS].NUMERO
GROUP BY YEAR(DATA)) L ON I.DATA = L.ANO
GROUP BY I.DATA, I.TOTAL_IMPOSTO, L.LUCRO