Boa tarde pessoal,
Tenho essa query, porém, o BD (access) fica na rede, e isso está fazendo com que ela fique mais lenta.
Será que alguém consegue melhorá-la para ser mais rápida? De repente, estou fazendo um looping desnecessário, não sei.
SELECT A.CODIGO, A.ativo, A.DATA, B.PRECO, A.Quantidade, A.Cliente, A.Financeiro, Str(A.vol) AS Expr1, A.Parceiro, A.aplic_inicial
FROM (
SELECT DB_PRECOS.CODIGO, Max(DB_PRECOS.Ativo) AS ativo, Max(DB_PRECOS.DATA) AS DATA, Positions.Quantidade,
De_para_contas.Nosso_codigo AS Cliente, Positions.Financeiro, volatilidade.vol, db_ParceirosPC.Parceiro,
Min(db_Movimentacoes_interna.DATA_DA_COTIZACAO) AS aplic_inicial FROM (
db_ParceirosPC INNER JOIN (
Cadastro INNER JOIN De_para_contas ON Cadastro.Codigo = De_para_contas.Nosso_codigo)
ON db_ParceirosPC.cod_tab = De_para_contas.Parceiro)
INNER JOIN (
db_Movimentacoes_interna INNER JOIN (
volatilidade INNER JOIN (
DB_PRECOS INNER JOIN Positions ON DB_PRECOS.Codigo = Positions.Ativo)
ON volatilidade.Ativo = DB_PRECOS.Codigo)
ON db_Movimentacoes_interna.Ativo = Positions.Ativo)
ON De_para_contas.Codigo = Positions.Conta
WHERE (((Positions.Data)=#04/03/2017#) AND ((De_para_contas.Conta_externa) =10053190)
AND ((Cadastro.Nome) like '*maur*')
AND ((DB_PRECOS.PRECO)<>0)
AND ((DB_PRECOS.data)>#03/03/2017#
AND (DB_PRECOS.data)<=#04/03/2017#))
GROUP BY DB_PRECOS.CODIGO, Positions.Quantidade, De_para_contas.Nosso_codigo,
Positions.Financeiro, volatilidade.vol, db_ParceirosPC.Parceiro ORDER BY Max(DB_PRECOS.Ativo), Max(DB_PRECOS.DATA) DESC ) AS A
LEFT JOIN DB_PRECOS AS B ON (A.DATA = B.DATA) AND (A.CODIGO = B.CODIGO) ORDER BY A.ativo;