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 

[DUVIDA] Como montar esse select?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Jul 23, 2010 10:48 am    Assunto: [DUVIDA] Como montar esse select? Responder com Citação

Bom dia a todos!

Estou com a seguinte dúvida...

Tenho esse select que me tráz o seguinte retorno:

SELECT A.duplic, A.dtvenc, A.valor
FROM PCPREST A
WHERE A.numcar = 86774
ORDER BY A.duplic, A.dtvenc;


DUPLIC DTVENC VALOR
33689 11-ago-2010 669,81
33689 18-ago-2010 669,80


Observe que ele me traz duas linhas, o campo DUPLIC é igual nas duas linhas, o que diferencia são os campos DTVENC e VALOR.

Gostaria de saber como montar esse select pra me mostrar os resultados em uma só linha. O resultado ficaria assim:

DUPLIC DTVENC VALOR DTVENC VALOR
33689 11-ago-2010 669,81 18-ago-2010 669,80



Desde já agradeço a quem puder me ajudar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Sex Jul 23, 2010 10:54 am    Assunto: Responder com Citação

Se são dois registros, vai trazer em duas linhas...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
samfreire
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 11 de Março de 2010
Mensagens: 136

MensagemEnviada: Sex Jul 23, 2010 10:56 am    Assunto: Responder com Citação

a onde vc quer mostrar esse resultado?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Jul 23, 2010 11:19 am    Assunto: Responder com Citação

samfreire escreveu:
a onde vc quer mostrar esse resultado?


Vou mostrar em um ReportBuilder.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
douglasmaicon
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 28 de Mai de 2010
Mensagens: 255
Localização: São João Del Rei - MG

MensagemEnviada: Sex Jul 23, 2010 1:30 pm    Assunto: Responder com Citação

Citação:

SELECT A.duplic, A.dtvenc, A.valor
FROM PCPREST A
WHERE A.numcar = 86774
ORDER BY A.duplic, A.dtvenc;


Tente usar um group by
_________________
"O Homem que perde sua Honra, morre para o mundo. Mas o Homem Honrado nunca morrerá. (José Alencar Gomes da Silva)"


Editado pela última vez por douglasmaicon em Seg Jul 26, 2010 1:20 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Jul 23, 2010 2:22 pm    Assunto: Responder com Citação

douglasmaicon escreveu:
Citação:

SELECT A.duplic, A.dtvenc, A.valor
FROM PCPREST A
WHERE A.numcar = 86774
ORDER BY A.duplic, A.dtvenc;


Tente usar um group by


Com o group by infelizmente não dá certo porque ele só agrupa os valores iguais. E no meu caso eu preciso que os valores diferentes estejam na mesma linha.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Jul 23, 2010 2:54 pm    Assunto: Responder com Citação

Boa tarde,

qual banco de dados você utiliza?


adalbertomesquita escreveu:
douglasmaicon escreveu:
Citação:

SELECT A.duplic, A.dtvenc, A.valor
FROM PCPREST A
WHERE A.numcar = 86774
ORDER BY A.duplic, A.dtvenc;


Tente usar um group by


Com o group by infelizmente não dá certo porque ele só agrupa os valores iguais. E no meu caso eu preciso que os valores diferentes estejam na mesma linha.

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Jul 23, 2010 3:24 pm    Assunto: Responder com Citação

BrunoMoreyra escreveu:
Boa tarde,

qual banco de dados você utiliza?


adalbertomesquita escreveu:
douglasmaicon escreveu:
Citação:

SELECT A.duplic, A.dtvenc, A.valor
FROM PCPREST A
WHERE A.numcar = 86774
ORDER BY A.duplic, A.dtvenc;


Tente usar um group by


Com o group by infelizmente não dá certo porque ele só agrupa os valores iguais. E no meu caso eu preciso que os valores diferentes estejam na mesma linha.


Estou usando o banco Oracle 10i.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Morto
Profissional
Profissional


Registrado: Quarta-Feira, 2 de Fevereiro de 2005
Mensagens: 520
Localização: Belo Horizonte, MG

MensagemEnviada: Sex Jul 23, 2010 3:27 pm    Assunto: Responder com Citação

Adalberto.

você sabe exatamente quantas "colunas de valores" vão existir??? ou isso varia a cada linha???
_________________
André Rodrigues
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Jul 23, 2010 3:50 pm    Assunto: Responder com Citação

Morto escreveu:
Adalberto.

você sabe exatamente quantas "colunas de valores" vão existir??? ou isso varia a cada linha???


Não tem uma quantidade exata de colunas, pode ser de uma a cinco.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
BrunoMoreyra
Colaborador
Colaborador


Registrado: Quinta-Feira, 26 de Novembro de 2009
Mensagens: 1398
Localização: Goiânia - GO / Brasília - DF

MensagemEnviada: Sex Jul 23, 2010 4:37 pm    Assunto: Responder com Citação

Boa tarde,

acho que teria que fazer algo parecido com isso.
Como coloquei para sempre repetir pode-se criar função onde você passará o campo que deseja filtrar (aparecer) e a linha que deseja visualizar.

Código:

select (SELECT A.duplic
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 1) as titulo,
       (SELECT A.dtvenc
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 1) as dtvencto1,
       (SELECT A.valor
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 1)  as valor1,
       (SELECT A.dtvenc
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 2) as dtvencto2,
       (SELECT A.valor
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 2)  as valor2,
       (SELECT A.dtvenc
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 3) as dtvencto2,
       (SELECT A.valor
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 3)  as valor2
  from (select distinct a.duplic
          from PCPREST) t


adalbertomesquita escreveu:
Morto escreveu:
Adalberto.

você sabe exatamente quantas "colunas de valores" vão existir??? ou isso varia a cada linha???


Não tem uma quantidade exata de colunas, pode ser de uma a cinco.

_________________
Atencisamente,

Bruno Moreira Batista.
http://www.kawek.com.br/BrunoBatista
Skype: Bruno_Batysta
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Sex Jul 23, 2010 5:04 pm    Assunto: Responder com Citação

BrunoMoreyra escreveu:
Boa tarde,

acho que teria que fazer algo parecido com isso.
Como coloquei para sempre repetir pode-se criar função onde você passará o campo que deseja filtrar (aparecer) e a linha que deseja visualizar.

Código:

select (SELECT A.duplic
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 1) as titulo,
       (SELECT A.dtvenc
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 1) as dtvencto1,
       (SELECT A.valor
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 1)  as valor1,
       (SELECT A.dtvenc
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 2) as dtvencto2,
       (SELECT A.valor
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 2)  as valor2,
       (SELECT A.dtvenc
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 3) as dtvencto2,
       (SELECT A.valor
          FROM PCPREST A
         WHERE A.numcar = t.numcar
           and rownum = 3)  as valor2
  from (select distinct a.duplic
          from PCPREST) t


adalbertomesquita escreveu:
Morto escreveu:
Adalberto.

você sabe exatamente quantas "colunas de valores" vão existir??? ou isso varia a cada linha???


Não tem uma quantidade exata de colunas, pode ser de uma a cinco.


Boa tarde Bruno,

Eu alterei o select e ele ficou da seguinte forma:

select (SELECT A.duplic
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 1) as titulo,
(SELECT A.dtvenc
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 1) as dtvencto1,
(SELECT A.valor
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 1) as valor1,
(SELECT A.dtvenc
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 2) as dtvencto2,
(SELECT A.valor
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 2) as valor2,
(SELECT A.dtvenc
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 3) as dtvencto2,
(SELECT A.valor
FROM PCPREST A
WHERE A.numcar = 86774
and rownum = 3) as valor2
from (select distinct a.duplic
from PCPREST A)


Quando executei ele me trouxe uma quantidade infinita de linhas com a mesma informação:

TITULO DTVENCTO1 VALOR1
------------- ------------------- --------------------------------------
33689 11-ago-2010 669,81
33689 11-ago-2010 669,81
33689 11-ago-2010 669,81
33689 11-ago-2010 669,81
33689 11-ago-2010 669,81
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adalbertomesquita
Experiente
Experiente


Registrado: Segunda-Feira, 4 de Agosto de 2008
Mensagens: 402
Localização: Brasília

MensagemEnviada: Seg Jul 26, 2010 3:06 pm    Assunto: Responder com Citação

Alguém? Crying or Very sad
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 -> Delphi 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