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

Criar template para gestão de tarefas no Notion - Preciso criar um template no Notion para organização de tarefas e prazos contábeis dos departamentos fiscal, contábil e DP. O template deve ter uma área de traba...

Construir dashboard em Excel - Temos alguns dados de relatório e gostaria que fosse criado um dashboard com base nesses dados. O arquivo em Excel está no formato .xlsx e será enviado. Não temos nenhum...

Desenvolvimento de relatório comercial em Power BI - Preciso desenvolver um relatório comercial em Power BI, visual, com o intuito de verificar as vendas da empresa, utilizando a base de dados em XML e TXT. O relatório é apenas p...

Unificação de relatórios - Trabalho com fornecimento atacadista e venda varejista na Amazon. Faço o gerenciamento através de Google Sheets e gostaria de suporte para desenvolver um sistema enxuto com dashboard ...

Criação de dashboard em Excel (análise de marketplace) - Buscando alguém com experiência em análise de marketplaces e organização de bases de produtos para desenvolver um dashboard em Excel. Escopo do trabalho: - Conso...

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.