Para retornar os valores em linhas, um para cada valor de TIPO use

SELECT TIPO, MAX(COD) MAX_COD
FROM nome_da_tabela
GROUP BY TIPO

Se preferir os valores em duas colunas numa única linha e se estiver usando
FireBird 1.5 ou uma versão superior pode usar o operador CASE.

SELECT
    MAX(CASE WHEN TIPO = 'E' THEN COD END) MAX_E,
    MAX(CASE WHEN TIPO = 'S' THEN COD END) MAX_S
FROM nome_da_tabela

Os valores que não obedecerem à condição do CASE TIPO = 'E' serão traduzidos
como NULL ao invés do valor da coluna COD e os valores NULL serão ignorados
pela função MAX.

Daniel Maltarolli
http://www.singularsistemas.com.br/blog


-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de WILLER
Enviada em: segunda-feira, 16 de outubro de 2006 11:14
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Dificuldade em Select

Estou usando o FireBird e Delphi 7. Preciso fazer um select na minha tabela,
que tem uma extrutura mais ou menos assim:

cod - tipo
778 - E
750 - S
778 - S
750 - E


O tipo define se é entrada ou saída, e o código identifica a pessoa. O meu
select deveria trazer o último movimento de cada um dos códigos. Por
exemplo, na tabela acima deveria me trazer:
 778 - E
 750 - S
Alguém sabe se é possível fazer isso? Tentei algumas coisas, mas meus
conhecimentos em firebird não são muito amplos.



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a