none
Como fazer update comparando campos da mesma tabela RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Eis o problema de hoje,

    Tenho uma tabela chamada Faturamento, que é a responsável pelo faturamento das boletas.

    Sendo assim tenho o seguinte problema:

    Data | Valor
    2013-06-30 | 1363.4200
    NULL | 508.3700

    percebe-se que no campo data a segunda linha está como NULL,
    desta forma eu preciso pegar a data da linha de cima e jogar para esse que está nulo,
    Como posso fazer esse update nesta tabela?

    Vale lembrar que estas 2 linhas é só uma amostragem, o resultado da consulta tem mais de 100000 linhas, por isso não da pra fazer uma por uma.

    Desde então agradeço

    terça-feira, 19 de novembro de 2013 19:01

Respostas

Todas as Respostas

  • OK!

    Mas tipo!

    A linha de cima tem haver com a linha de baixo ???

    Qual a relação desses valores para você colocar a data anterior na próxima que está NULL!

    Existe alguma regra imposta???

    coloque o nome da tabela e se houver filtro também por favor ????


    Fulvio Cezar Canducci Dias

    terça-feira, 19 de novembro de 2013 19:08
  • Boa tarde,

    Markhos, experimente mais ou menos dessa forma:

    update u
    set Data = 
            (select top 1 Data 
             from Faturamento as s 
             where 
                 s.Id < u.Id and
                 s.Data is not null
             order by 
                 s.Id desc)
    from Faturamento as u
    where u.Data is null

    Espero que ajude.


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

    terça-feira, 19 de novembro de 2013 19:25
  • Deleted
    terça-feira, 19 de novembro de 2013 23:17
  • Fúlvio

    A linha de cima foi inserira no mesmo dia da de baixo, porém o usuário do sistema deixou vários campos  de data como nulos, eu meio que limpei os campos da tabela para não ficar muito complexo e concentrar mais no problema, estamos fazendo uma troca de sisteme dai temos que tratar todos esse problemas antes da importação dos dados no novo sistema.
    quarta-feira, 20 de novembro de 2013 16:09
  • Gapimex

    Não entendi a logica desse "Id" que você esta usando no código, tentei rodar aqui mas deu erro. 
    quarta-feira, 20 de novembro de 2013 16:10
  • No script que sugeri Id seria a chave primária da tabela.

    Aquele comando buscaria a data da primeira linha com a chave primária menor (ordem descendente) em relação a linha que está sendo atualizada.

    Espero que ajude.


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

    • Marcado como Resposta Markhos Santos quinta-feira, 21 de novembro de 2013 16:32
    quarta-feira, 20 de novembro de 2013 16:48
  • Meu caro José,

    Seu código esta em tão alto nível, que nem consegui implementá-lo em meu código.
    Mas mesmo assim agradeço pela resposta.
    quinta-feira, 21 de novembro de 2013 16:32
  • Ok meu caro Gapimex.

    Dessa forma consegui solucionar meu problema.
    Mais uma vez obrigado.
    quinta-feira, 21 de novembro de 2013 16:33