none
Select Traz dados historicos Colunas ao lado. RRS feed

  • Pergunta

  • Caros,

    Preciso fazer uma consulta que traga as informações do registro anterior nas colunas ao lado EX.

    Tabela:

    Data        |Os           | Cliente       |
    01/09/16|REPARO   | José           |
    01/09/16|REPARO   | maria         |
    01/09/16|REPARO   | Antonio      |
    01/09/16|REPARO   | Roberto      |
    29/08/16|REPARO   | José           |
    26/08/16|REPARO   | José           | 

    Preciso de uma consulta que traga assim:

    Data        |Os           | Cliente       | Reincidente_data | Reincidente_Servico |
    01/09/16|REPARO   | José           | 29/08/16            | Reparo                     |
    01/09/16|REPARO   | maria         |                           |                                |   
    01/09/16|REPARO   | Antonio      |                           |                                |   
    01/09/16|REPARO   | Roberto      |                           |                                |   
    29/08/16|REPARO   | José           |                           |                                |   
    26/08/16|REPARO   | José           |                           |                                |  

    Eu Fiz um Left join 

    Select Distinct (A.data), A.Os, A.Cliente, B.Reincidente_Data, B.Reincidente_Servico From Tabela1 as A

    Left join  Tabela2  as B On A.Cliente = B.Cliente

    Mas ai eu gostaria que viesse apenas o registro de reparo anterior, mas vem duplicado

    Data        |Os           | Cliente       | Reincidente_data | Reincidente_Servico |
    01/09/16|REPARO   | José           | 29/08/16            | Reparo                     |
    01/09/16|REPARO   | José           | 26/08/16            | Reparo                     |
    01/09/16|REPARO   | maria         |                           |                                |   
    01/09/16|REPARO   | Antonio      |                           |                                |   
    01/09/16|REPARO   | Roberto      |                           |                                |   
    29/08/16|REPARO   | José           |                           |                                |   
    26/08/16|REPARO   | José           |                           |                                |  


    quarta-feira, 21 de setembro de 2016 18:32

Respostas

  • Tenta assim:

    SELECT Data, Os, Cliente, LAG(Data,1,0) OVER (PARTITION BY Cliente ORDER BY Cliente, Data) as Reincidente_data, LAG(Os,1,0) OVER (PARTITION BY Cliente ORDER BY Cliente, Data) as Reincidente_Servico 
    FROM TABELA

    Não cheguei a testar, mas deve funcionar.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quarta-feira, 21 de setembro de 2016 19:28
  • Deleted
    quarta-feira, 21 de setembro de 2016 20:45

Todas as Respostas

  • Tenta assim:

    SELECT Data, Os, Cliente, LAG(Data,1,0) OVER (PARTITION BY Cliente ORDER BY Cliente, Data) as Reincidente_data, LAG(Os,1,0) OVER (PARTITION BY Cliente ORDER BY Cliente, Data) as Reincidente_Servico 
    FROM TABELA

    Não cheguei a testar, mas deve funcionar.

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quarta-feira, 21 de setembro de 2016 19:28
  • Deleted
    quarta-feira, 21 de setembro de 2016 20:45