select mais de uma vez a mesma coluna firebird
Bom dia a todos,
tenho uma tabela no BD firebird chamada NFITEM que possui todos os itens das notas fiscais emitidas.
Aqui nosso sistema é multiempresas, portanto tem 2 empresas cadastradas na mesma tabela...
Preciso buscar um select, onde me mostre a seguinte ordem:
NOME_PRODUTO, QUANTIDADE_VENDIDA_EMPRESA_1, QUANTIDADE_VENDIDA_EMPRESA_2
E ai a partir desse select eu subo para um sistema de relatórios e trabalho as informações...
Eu consegui fazer da seguinte forma:
SELECT DES_ITEM,
(SELECT SUM(QTD_EXPEDIDA) EMPRESA1
FROM NFITEM A
WHERE COD_EMPRESA = 'EMPRESA1' AND A.DES_ITEM = C.DES_ITEM
AND DAT_IMPRESSAO BETWEEN '01.02.2018' AND '23.02.2018'
AND COD_TPMATERIAL = 'PA'
AND COD_ITEM < '020000'
GROUP BY DES_ITEM),
(SELECT SUM(QTD_EXPEDIDA) EMPRESA2
FROM NFITEM B
WHERE COD_EMPRESA = 'EMPRESA2' AND B.DES_ITEM = C.DES_ITEM
AND DAT_IMPRESSAO BETWEEN '01.02.2018' AND '23.02.2018'
AND COD_TPMATERIAL = 'PA'
AND COD_ITEM < '020000'
GROUP BY DES_ITEM)
FROM NFITEM C
WHERE COD_TPMATERIAL = 'PA'
AND DAT_IMPRESSAO BETWEEN '01.02.2018' AND '23.02.2018'
AND COD_ITEM < '020000'
GROUP BY DES_ITEM
Essa forma me atenderia (em partes), porém pelo fato dessa tabela possuir muitas linhas (mais de 170 mil) a pesquisa acaba demorando demais, as vezes da até 5 minutos para buscar a informação.
Alguém tem alguma ideia de como eu posso melhorar esse select para melhorar a performance?
Obrigado desde já.Discussão (3)
Carregando comentários...