ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Dúvida SQL (MYSQL)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
grsoft
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 10 de Abril de 2006
Mensagens: 107

MensagemEnviada: Sex Set 21, 2018 3:04 pm    Assunto: Dúvida SQL (MYSQL) Responder com Citação

Pessoal, boa tarde

Estou com uma dúvida numa SQL aqui e gostaria da ajuda de vocês, seguinte:

Tenho duas tabelas, uma de vendaprodutos e uma de vendacomplemenos e estou querendo umas SQL q agrupe os produtos vendidos somente se eles não tiverem nenhum complemento acoplado, ex:

vendaprodutos

COD, NOMEPROD, QUANT

1, HAMBURGUER, 1
2, HAMBURGUER, 2
3, HAMBURGUER, 2

vendacomplemntos

COD, CODVENDA, NOMECOMPLEMENTO, QUANT

1, 1, COM BACON, 1

o resultado teria q ser:

NOME, QUANT
HAMBURGUER, 4
HAMBURGUER, 1

pq o HAMBURGUER de código 1 tem um complemento atrelado a ele, senão tivesse ficaria assim

HAMBURGUER, 5
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Set 21, 2018 4:12 pm    Assunto: Responder com Citação

Boa tarde,

Experimente fazer uns testes mais ou menos dessa forma para ver se funciona:

Código:
select
    v.nomeprod,
    case when exists(select 1 from vendacomplementos as c where c.codvenda = v.cod)
        then 'S'
        else 'N'
    end as TemComplemento
    sum(v.quant) as quant
from vendaprodutos as v
group by
    v.nomeprod,
    TemComplemento


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-apartamento
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
grsoft
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 10 de Abril de 2006
Mensagens: 107

MensagemEnviada: Sáb Set 22, 2018 8:04 am    Assunto: Responder com Citação

Estamos quase lá meu amigo, o único detalhe é q não pode ser somado os produtos q tem complemento, eles precisam aparecer num registro único

imex escreveu:
Boa tarde,

Experimente fazer uns testes mais ou menos dessa forma para ver se funciona:

Código:
select
    v.nomeprod,
    case when exists(select 1 from vendacomplementos as c where c.codvenda = v.cod)
        then 'S'
        else 'N'
    end as TemComplemento
    sum(v.quant) as quant
from vendaprodutos as v
group by
    v.nomeprod,
    TemComplemento


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-apartamento
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sáb Set 22, 2018 11:42 am    Assunto: Responder com Citação

Experimente dessa forma:

Código:
select
    v.nomeprod,
    coalesce(c.cod, 0) as complemento,
    sum(v.quant) as quant
from vendaprodutos as v
left join vendacomplementos as c
    on c.codvenda = v.cod
group by
    v.nomeprod,
    complemento


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
grsoft
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 10 de Abril de 2006
Mensagens: 107

MensagemEnviada: Seg Set 24, 2018 10:38 am    Assunto: Responder com Citação

Tudo perfeito. Mais uma vez salvando minha vida, MUITO obrigado meu amigo..

imex escreveu:
Experimente dessa forma:

Código:
select
    v.nomeprod,
    coalesce(c.cod, 0) as complemento,
    sum(v.quant) as quant
from vendaprodutos as v
left join vendacomplementos as c
    on c.codvenda = v.cod
group by
    v.nomeprod,
    complemento


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB