none
Ajuda comando SQL - Ultima posição RRS feed

  • Pergunta

  • Ola pessoal,

    Preciso de uma ajuda, eu tenho uma tabela tblwriandamentos, onde tem um campo chave estrangeira tblWRITpAndamentos.PK_Id

    Entao eu preciso da descrição do ultimo andamento, com ultima data do andamento, porem o nome do andamento esta em outra tabela.

    Entao eu preciso da data do ultimo andamento, combinado com a descrição do andamento que esta em outra tabela.

    Entao eu tentei fazer o comando mas nao consegui, segue abaixo:

    set dateformat dmy

    select tblwrirecepcao.PK_Recepcao, tblwrirecepcao.ProtocoloEntidade,

     

     

       

                    (select max(tblwritpandamentos.Descricao) -- Aqui eu preciso da descrição do andamento

                     from tblWRITpAndamentos                  -- a descricao esta nesta tabela

                  inner join tblwriandamentos on tblwriandamentos.FK_tblWRITpAndamento_Id = tblWRITpAndamentos.PK_Id

                  where tblwriandamentos.Data >

                  

                   (select max (tblwriandamentos.Data) -- porem eu preciso da descricao do ultimo andamento com a ultima data a data do andamento esta na tabela tblwriandamentos

                     from tblWRIAndamentos

                     where tblwriandamentos.FK_tblWRIRecepcaoRecepcao = PK_Recepcao

                     )

     

        ) AS Ultimo_Andamento

       

       from tblwriandamentos

      

        inner join tblwrirecepcao on tblwrirecepcao.PK_Recepcao = tblwriandamentos.FK_tblWRIRecepcaoRecepcao

    inner join tblWRITpAndamentos on tblwritpandamentos.PK_Id = tblwriandamentos.FK_tblWRITpAndamento_Id

     

    where tblwrirecepcao.TipoPrenotacao = 9

    and tblwrirecepcao.ProtocoloEntidade <> ''

     

    order by tblwrirecepcao.PK_Recepcao asc

     

    Se alguem puder me ajudar, agradeço

    terça-feira, 27 de janeiro de 2015 19:04

Respostas

  • Boa tarde,

    Experimente dessa forma:

    with CTE_RN as
    (
        select 
            tblwrirecepcao.PK_Recepcao, 
            tblwrirecepcao.ProtocoloEntidade,
            tblwriandamentos.Data,
            tblwriandamentos.FK_tblWRITpAndamento_Id,
            ROW_NUMBER() OVER
                (PARTITION BY tblwrirecepcao.PK_Recepcao 
                 ORDER BY tblwriandamentos.Data DESC) as RN
        from tblwrirecepcao 
        inner join tblwriandamentos
            on tblwriandamentos.FK_tblWRIRecepcaoRecepcao = tblwrirecepcao.PK_Recepcao
        where 
            tblwrirecepcao.TipoPrenotacao = 9 and 
            tblwrirecepcao.ProtocoloEntidade <> ''
    ) 
     
    select
        CTE_RN.PK_Recepcao, 
        CTE_RN.ProtocoloEntidade,
        CTE_RN.Data,
        CTE_RN.FK_tblWRITpAndamento_Id,
        tblwritpandamentos.Descricao   
    from CTE_RN   
    inner join tblWRITpAndamentos 
        on tblwritpandamentos.PK_Id = CTE_RN.FK_tblWRITpAndamento_Id
    where
        CTE_RN.RN = 1
    order by 
        CTE_RN.PK_Recepcao asc

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Tiago_Aurelio terça-feira, 27 de janeiro de 2015 19:28
    terça-feira, 27 de janeiro de 2015 19:21

Todas as Respostas

  • Boa tarde,

    Experimente dessa forma:

    with CTE_RN as
    (
        select 
            tblwrirecepcao.PK_Recepcao, 
            tblwrirecepcao.ProtocoloEntidade,
            tblwriandamentos.Data,
            tblwriandamentos.FK_tblWRITpAndamento_Id,
            ROW_NUMBER() OVER
                (PARTITION BY tblwrirecepcao.PK_Recepcao 
                 ORDER BY tblwriandamentos.Data DESC) as RN
        from tblwrirecepcao 
        inner join tblwriandamentos
            on tblwriandamentos.FK_tblWRIRecepcaoRecepcao = tblwrirecepcao.PK_Recepcao
        where 
            tblwrirecepcao.TipoPrenotacao = 9 and 
            tblwrirecepcao.ProtocoloEntidade <> ''
    ) 
     
    select
        CTE_RN.PK_Recepcao, 
        CTE_RN.ProtocoloEntidade,
        CTE_RN.Data,
        CTE_RN.FK_tblWRITpAndamento_Id,
        tblwritpandamentos.Descricao   
    from CTE_RN   
    inner join tblWRITpAndamentos 
        on tblwritpandamentos.PK_Id = CTE_RN.FK_tblWRITpAndamento_Id
    where
        CTE_RN.RN = 1
    order by 
        CTE_RN.PK_Recepcao asc

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Tiago_Aurelio terça-feira, 27 de janeiro de 2015 19:28
    terça-feira, 27 de janeiro de 2015 19:21
  • Perfeito gapimex

    Mais uma vez obrigado, voce sempre ajudando aqui.

    Obrigado

    terça-feira, 27 de janeiro de 2015 19:24