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: Ter Out 03, 2017 11:20 am    Assunto: Dúvida SQL (MYSQL) Responder com Citação

Caros amigos, estou com uma dúvida de como resolver uma questão quando envolve um movimento com vários pagamentos, vou passar um exemplo bem simples:

Tenho um movimento que pode ter vários tipos de pagamento

tabela movimento
COD, DATA
tabela pagamento
COD, CODMOV, FORMAPAGAMENTO, VALOR

o q eu quero é o seguinte: Uma sql que me retornasse a DATA do movimento junto com a forma de pagamento e o valor total, só que eu não queria que mostrasse duas ou três ou quatro linhas caso tivessem várias formas de pagamento. Gostaria de forma abaixo:

Caso tenha somente 1 pagamento:

DATA, FORMA DE PAGAMENTO, VALOR TOTAL

Caso tenha mais de 1 pagamento:

DATA, "Existe mais de uma forma de pagamento", VALOR TOTAL.

Agradeço antecipadamente.
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 Out 03, 2017 1:57 pm    Assunto: Responder com Citação

Boa tarde,

Não tenho nenhuma experiência com o MySQL mas experimente dessa forma:

Código:
select
    m.Cod,
    m.Data,
    case when count(distinct p.FormaPagamento) = 1
        then min(p.FormaPagamento)
        else 'Existe mais de uma forma de pagamento'
    end as FormaPagamento,
    sum(p.Valor) as ValorTotal
from Movimento as m
inner join Pagamento as p
    on p.Cod = m.Cod
group by
    m.Cod,
    m.Data


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos!centro-residencial-casa
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: Ter Out 03, 2017 3:22 pm    Assunto: Responder com Citação

Deu certo meu amigo, MUITO obrigado...

imex escreveu:
Boa tarde,

Não tenho nenhuma experiência com o MySQL mas experimente dessa forma:

Código:
select
    m.Cod,
    m.Data,
    case when count(distinct p.FormaPagamento) = 1
        then min(p.FormaPagamento)
        else 'Existe mais de uma forma de pagamento'
    end as FormaPagamento,
    sum(p.Valor) as ValorTotal
from Movimento as m
inner join Pagamento as p
    on p.Cod = m.Cod
group by
    m.Cod,
    m.Data


Espero que ajude

_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos!centro-residencial-casa
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