none
row_number() over (partition by SQL Server 2000 RRS feed

  • Pergunta

  • Pessoal

        Gostaria de conseguir algo semenhante ao resultado abaixo, pois estou utilizando uma base com dados  em SQL Server 2000, tentei utilizar cursor mais o tempo não está muito bom, por mais que estarei utilizando está rotina apenas uma vez, na implantação do Sistema.

    Se fosse no SQL Server 2008, estaria utilizando row_number() over (partition by, o que eu poderia utilizar dentro do SQL Server 2000, parecido com isto ?

    Cod Seq
    100 1
    100 2
    200 1
    200 2
    200 3
    300 1
    300 2
    300 3

    quarta-feira, 13 de agosto de 2014 20:09

Respostas

  • José

       Acabei fazendo de outra maneira, que 2o. o autor é mais rápido, e percebi que no momento está rápido mesmo, veja o link abaixo, e a forma que acabei fazendo, e qualquer novidade, basta dar um alô,  e desde já, quero agradecer a sua grande ajuda.

    http://social.technet.microsoft.com/Forums/it-IT/a1cc2a57-9371-43de-8d37-72619803691c/resequence-out-of-order-numbers?forum=transactsql

    begin tran
    update tb_rec_0 set
    tb_rec_0.nr_Seq_Documento = tb_rec_seq.id_Seq_Doc
    from nc_receber tb_rec_0 inner join
    (select tb_rec_1.chavecontrole,tb_rec_1.referencia,tb_rec_1.sacadoprincipal,tb_rec_1.dt_emissao_doc,count(tb_rec_1.ChaveControle) as id_Seq_Doc
    from nc_receber tb_rec_1
    inner join nc_receber tb_rec_2 on tb_rec_2.chavecontrole <= tb_rec_1.chavecontrole
    and tb_rec_1.referencia = tb_rec_2.referencia
    and tb_rec_1.sacadoprincipal = tb_rec_2.sacadoprincipal
    and tb_rec_1.dt_emissao_doc = tb_rec_2.dt_emissao_doc
    group by tb_rec_1.chavecontrole,tb_rec_1.referencia,tb_rec_1.sacadoprincipal,tb_rec_1.dt_emissao_doc) as tb_rec_seq
    on tb_rec_0.chavecontrole = tb_rec_seq.ChaveControle
    -- commit
    -- rollback

    quinta-feira, 14 de agosto de 2014 01:30

Todas as Respostas

  • Deleted
    quarta-feira, 13 de agosto de 2014 20:29
  • José

       Tinha feito alguns testes anteriormente com  identity() , mais não me atendeu, estou tentando outros, e qualquer novidade eu também aviso. E valeu pelas dicas.

    quarta-feira, 13 de agosto de 2014 22:01
  • Deleted
    quarta-feira, 13 de agosto de 2014 23:06
  • José

       Acabei fazendo de outra maneira, que 2o. o autor é mais rápido, e percebi que no momento está rápido mesmo, veja o link abaixo, e a forma que acabei fazendo, e qualquer novidade, basta dar um alô,  e desde já, quero agradecer a sua grande ajuda.

    http://social.technet.microsoft.com/Forums/it-IT/a1cc2a57-9371-43de-8d37-72619803691c/resequence-out-of-order-numbers?forum=transactsql

    begin tran
    update tb_rec_0 set
    tb_rec_0.nr_Seq_Documento = tb_rec_seq.id_Seq_Doc
    from nc_receber tb_rec_0 inner join
    (select tb_rec_1.chavecontrole,tb_rec_1.referencia,tb_rec_1.sacadoprincipal,tb_rec_1.dt_emissao_doc,count(tb_rec_1.ChaveControle) as id_Seq_Doc
    from nc_receber tb_rec_1
    inner join nc_receber tb_rec_2 on tb_rec_2.chavecontrole <= tb_rec_1.chavecontrole
    and tb_rec_1.referencia = tb_rec_2.referencia
    and tb_rec_1.sacadoprincipal = tb_rec_2.sacadoprincipal
    and tb_rec_1.dt_emissao_doc = tb_rec_2.dt_emissao_doc
    group by tb_rec_1.chavecontrole,tb_rec_1.referencia,tb_rec_1.sacadoprincipal,tb_rec_1.dt_emissao_doc) as tb_rec_seq
    on tb_rec_0.chavecontrole = tb_rec_seq.ChaveControle
    -- commit
    -- rollback

    quinta-feira, 14 de agosto de 2014 01:30