Res: [firebase-br] Nº Sequencial em um select

Wilton Junior wiltonjunior2002 em yahoo.com.br
Ter Set 18 19:54:41 -03 2007


da uma olhada nesta que eu fiz.

SET TERM ^ ;
CREATE PROCEDURE PR_GANHADORES (
    pidpremio INTEGER)
RETURNS (
    pntotal INTEGER,
    pnidsegmentos INTEGER,
    pcsegmento VARCHAR(100),
    pnidcategorias INTEGER,
    pccategoria VARCHAR(100),
    pnnotafinal NUMERIC(7,2),
    pcparticipante VARCHAR(100),
    pcpeca VARCHAR(200),
    pctipoinscricao VARCHAR(10))
AS
DECLARE VARIABLE vnidcategorias INTEGER;
DECLARE VARIABLE vnidsegmentos INTEGER;
DECLARE VARIABLE vcretorno VARCHAR(1000);
DECLARE VARIABLE vctipoinscricao VARCHAR(10);
BEGIN
    pnTotal = 0;
    vnidsegmentos = 0;
    vnidcategorias = 0;
    vctipoinscricao = '';
    FOR SELECT i.id_segmentos,
               sg.descricao segmento,
               i.id_categoria,
               ct.descricao categoria,
               pt.nome, 
               i.nome_peca,
               i.nota_final,
          CASE i.tipo_inscricao
            WHEN 'A' THEN 'Agência'
            WHEN 'G' THEN 'Gráfica'
            WHEN 'E' THEN 'Estudante'
          END tipo_inscricao
        FROM   inscricao i
        JOIN   segmentos sg ON (i.id_segmentos = sg.id_segmentos)
        JOIN   categorias ct ON (i.id_categoria = ct.id_categoria AND i.id_segmentos = ct.id_segmentos)
        JOIN   participantes pt ON (i.id_participante = pt.id_participante)
        WHERE id_premio = :pidPremio
        ORDER BY i.tipo_inscricao,i.id_segmentos,i.id_categoria, i.nota_final  DESC
    INTO :pnIdSegmentos, :pcSegmento, :pnIdCategorias,
         :pcCategoria,:pcparticipante,pcpeca, :pnNotaFinal,
         :pctipoinscricao
DO
    BEGIN /* begin the loop */
        if (vnidcategorias <> pnidcategorias) THEN
           IF  (vnidsegmentos <> pnidsegmentos) THEN
            pnTotal = 0;
        if (vnidcategorias <> pnidcategorias) THEN
           IF  (vnidsegmentos = pnidsegmentos) THEN
            pnTotal = 0;
        if (vnidcategorias <> pnidcategorias) THEN
           IF  (vnidsegmentos = pnidsegmentos) THEN
             if (vctipoinscricao <> pctipoinscricao) then
                pnTotal = 0;
        if (vnidcategorias = pnidcategorias) THEN
           IF  (vnidsegmentos = pnidsegmentos) THEN
             if (vctipoinscricao <> pctipoinscricao) then
                pnTotal = 0;
        pnTotal = pnTotal + 1;
        vcRetorno = CAST(pnTotal AS VARCHAR(5))||' '||pcparticipante||' '||
        pcpeca ||' '|| pnIdSegmentos ||' '|| pcSegmento ||' '||pnIdCategorias||' '||
                    pcCategoria ||' '||pnNotaFinal||' '||pctipoinscricao;
        vnidsegmentos   = pnidsegmentos;
        vnidcategorias  = pnidcategorias;
        vctipoinscricao = pctipoinscricao;
        SUSPEND; /* this outputs one row per loop */
    END
END^
SET TERM ; ^

 



Wilton Pereira Dias Júnior
JR Tecnologia
(62) 8418-1660
MSN: wiltonjunior em msn.com




----- Mensagem original ----
De: João Matheus Andrade <joao.matheus2 em terra.com.br>
Para: epaulo2002 em yahoo.com.br; FireBase <lista em firebase.com.br>
Enviadas: Terça-feira, 18 de Setembro de 2007 19:33:42
Assunto: Re: [firebase-br] Nº Sequencial em um select


Acho que seria interessante criar uma sp para resolver esse seu problema


----- Original Message ----- 
From: "Edson de Paulo" <epaulo2002 em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Friday, September 14, 2007 5:26 PM
Subject: [firebase-br] Nº Sequencial em um select


Alguém pode me ajudar, como faço para simular um campo sequencial em um
select. Por exemplo, quero executar o seguinte select.

SELECT Seq, Nome FROM veiculo

Quero o seguinte resultado
Seq  Nome
1    Pedro
2    Paulo
3    João
4    Joaquim
5    Alguém

Lembro que o campo Seq não existe na tabela, queria saber se existe
algum comando como ROWNUM, LINE_NUM, ou similar!!



-- 
Edson de Paulo
Curitiba - PR


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


      Flickr agora em português. Você clica, todo mundo vê.
http://www.flickr.com.br/


Mais detalhes sobre a lista de discussão lista