Pesquisar

Comando mysql

09/05/2021 às 09:44

Descrição do Projeto:

Preciso criar um select no mysql que seja ágil.

O select deverá da como resultado a tabela menor do lado direito da imagem em anexo.

Tabela de origem contém muitos dados e múltiplos usuários acessam a tabela simultaneamente.

a tabela de origem é gerada já via um select criado da conjunção de 4 tabelas.

segue select atual.

Tempo de execução de 2 segundos! Preciso de algo mais rápido.

select
tabela1.id_contrato,
tabela1.quantidadetotal quantidade_total,
IFNULL(tabela2.quantidade_cliente, 0) quantidade_cliente,
tabela2.id_cliente
from
(
select
tcontrato.id id_contrato,
sum(titemxpesquisacoletiva.quantidade) quantidadetotal
from
tclientexassociacao,
tcontrato,
titemxpesquisacoletiva,
tvencedorpesquisacoletiva
where
tclientexassociacao.id_cliente=$id_cliente and
tclientexassociacao.status='1' and
tclientexassociacao.id_associacao = tcontrato.id_cliente and
tcontrato.status='confirmadoassociacao'and
tcontrato.validade>='$data' and
titemxpesquisacoletiva.id_contrato = tcontrato.id and
tvencedorpesquisacoletiva.id_itemxpesquisacoletiva = titemxpesquisacoletiva.id and
titemxpesquisacoletiva.status='1' and
(
tvencedorpesquisacoletiva.status='1' or
tvencedorpesquisacoletiva.status='Finalizado Cliente'
)
group by id_contrato
) tabela1
left join
(
select
tcontrato.id id_contrato,
sum(titemxpesquisacoletiva.quantidade) quantidade_cliente,
titemxpesquisacoletiva.id_cliente
from
tclientexassociacao,
tcontrato,
titemxpesquisacoletiva,
tvencedorpesquisacoletiva
where
tclientexassociacao.id_cliente=$id_cliente and
tclientexassociacao.status='1' and
tclientexassociacao.id_associacao = tcontrato.id_cliente and
tcontrato.status='confirmadoassociacao'and
tcontrato.validade>='$data' and
titemxpesquisacoletiva.id_contrato = tcontrato.id and
tvencedorpesquisacoletiva.id_itemxpesquisacoletiva = titemxpesquisacoletiva.id and
titemxpesquisacoletiva.id_cliente = 2303 and
titemxpesquisacoletiva.status='1' and
(
tvencedorpesquisacoletiva.status='1' or
tvencedorpesquisacoletiva.status='Finalizado Cliente'
)
group by id_contrato
) tabela2
on
tabela1.id_contrato = tabela2.id_contrato


Para apoio tenho um modelo que que preciso resolver

Habilidades desejadas:

MySQL

Arquivos anexados:

Entre ou Cadastre-se para ver os arquivos anexados.

Atividades do cliente nesse projeto:

Última visualização: 11/05/2021 às 10:52

Última interação: 10/05/2021 às 13:14

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Banco de Dados
Orçamento: Aberto
Nível de experiência: Iniciante
Visibilidade: Público
Propostas: 7
Propostas excluídas: 6
Interessados: 12
Valor Mínimo: R$ 50,00

Cliente

Freelancer vencedor

Propostas (1)
  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Integração de planilhas e criação de dashboard - Tenho 2 planilhas separadas e preciso juntar as informações que tenho nas 2. São planilhas com formatações diferentes e dados distintos; talvez algum méto...

Especialista em Trello para escritório de advocacia - Somos um escritório de advocacia especializado em Direito Previdenciário e Trabalhista, com alto volume de demandas. Buscamos um(a) profissional que nos auxilie a estruturar e automat...

Analista de banco de dados - Profissional para acesso e organização de banco de dados remoto. Busco um profissional com experiência plena em banco de dados e programação para: • Acessar...

DBA MySQL para consultoria e monitoramento - Preciso de um profissional para prestar serviço de consultoria, performance em queries e suporte 24x7 em banco de dados MySQL.

Estruturação de contas a pagar - Estruturar contas a pagar da área de facilities de uma empresa. Criação de aplicativo no Power Apps para controle mensal de fornecedores e de pagamentos de uma área. C...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.