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 

Agrupar por 2 campos distintos

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


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Ter Mar 28, 2017 7:13 pm    Assunto: Agrupar por 2 campos distintos Responder com Citação

fala pessoal, tenho uma duvida aqui q nao to conseguindo resolver:

tenho as tabelas

Código:
CLIENTES
codcliente
codgrupo
cliente


GRUPO
codgrupo
grupo


ITENS
codcliente
valor


e preciso fazer um select da seguinte forma

Código:
SELECT c.codcliente, c.cliente, SUM(valor)
FROM clientes c
INNER JOIN itens i ON i.codcliente = c.codcliente


eu preciso calcular o total por cliente, porem o cliente q possui grupo, nao pode aparecer (como se fosse uma matriz), ai nesse caso eu tenho q calcular o total do grupo, juntamente com os clientes q nao possuem grupo
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
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: Ter Mar 28, 2017 8:46 pm    Assunto: Responder com Citação

Boa noite,

Experimente dessa forma para ver se é obtido o resultado esperado:

Código:
SELECT
    coalesce(g.codgrupo, c.codcliente) as codigo,
    coalesce(g.grupo, c.cliente) as nome,
    SUM(i.valor) as valor
FROM clientes c
INNER JOIN itens i ON i.codcliente = c.codcliente
LEFT JOIN grupo g ON g.codgrupo = c.codgrupo
group by
    coalesce(g.codgrupo, c.codcliente),
    coalesce(g.grupo, c.cliente)


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