none
cursor sql RRS feed

  • Pergunta

  • ola galera podem me ajudar quero criar um cursor com o seguinte com abaixo pois onde esta pedido sempre tenho que colocar qual e o pedido ser ficasse assim pedido=@pedido vai me ajudar bastante

    update loja_compra set qtde_entregue=(select sum (qtde_entregue)from
    loja_compra_produto where pedido='01465'),qtde_entregar=(select sum (qtde_entregar) from
    loja_compra_produto where pedido='01465'),valor_entregue=(select sum (valor_entregue) from
    loja_compra_produto where pedido='01465'),valor_entregar=(select sum (valor_entregar) from
    loja_compra_produto where pedido='01465')
    where  pedido='01465'

    terça-feira, 11 de dezembro de 2012 15:25

Respostas

  • TIAGO, boa tarde

    Segue uma sugestão

    update 
        a
    set 
        a.qtde_entregue = B.qtde_entregue
        a.qtde_entregar = B.qtde_entregar
        a.valor_entregue= B.valor_entregue
        a.valor_entregar= B.valor_entregar
    from
        loja_compra as a
    inner join
    (
        select     
             pedido,
             sum(qtde_entregue)  as qtde_entregue,
             sum(qtde_entregar)  as qtde_entregar,
             sum(valor_entregue) as valor_entregue,
             sum(valor_entregar) as valor_entregar
        from 
            loja_compra_produto
        where 
            pedido='01465'
        group by
            pedido   
    ) as b on  a.pedido=b.pedido  


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    • Marcado como Resposta tiagofrança quarta-feira, 12 de dezembro de 2012 18:09
    terça-feira, 11 de dezembro de 2012 15:59
  • Teria que adaptar sua estrutura de busca para esta abaixo:

    declare @au_id char( 11 ) 
    set rowcount 0 
    select au_id,au_lname,au_fname into #mytemp from authors 
    set rowcount 1 
    select @au_id = au_id from #mytemp 
    while @@rowcount <> 0 
    begin 
         set rowcount 0 
    	 update loja_compra set qtde_entregue=(select sum (qtde_entregue)from 
    loja_compra_produto where pedido=@au_id),qtde_entregar=(select sum (qtde_entregar) from 
    loja_compra_produto where pedido=@au_id),valor_entregue=(select sum (valor_entregue) from 
    loja_compra_produto where pedido=@au_id),valor_entregar=(select sum (valor_entregar) from 
    loja_compra_produto where pedido=@au_id)
    where  pedido=@au_id
    	 
    
         delete #mytemp where au_id = @au_id 
         set rowcount 1 
         select @au_id = au_id from #mytemp 
    end 
    set rowcount 0 
    

    Eu não uso cursor por onerar muito o banco de dados e devido a politicas de algumas empresas não permitirem.

    Boa sorte

    • Marcado como Resposta tiagofrança quarta-feira, 12 de dezembro de 2012 18:09
    quarta-feira, 12 de dezembro de 2012 12:14

Todas as Respostas

  • TIAGO, boa tarde

    Segue uma sugestão

    update 
        a
    set 
        a.qtde_entregue = B.qtde_entregue
        a.qtde_entregar = B.qtde_entregar
        a.valor_entregue= B.valor_entregue
        a.valor_entregar= B.valor_entregar
    from
        loja_compra as a
    inner join
    (
        select     
             pedido,
             sum(qtde_entregue)  as qtde_entregue,
             sum(qtde_entregar)  as qtde_entregar,
             sum(valor_entregue) as valor_entregue,
             sum(valor_entregar) as valor_entregar
        from 
            loja_compra_produto
        where 
            pedido='01465'
        group by
            pedido   
    ) as b on  a.pedido=b.pedido  


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino

    • Marcado como Resposta tiagofrança quarta-feira, 12 de dezembro de 2012 18:09
    terça-feira, 11 de dezembro de 2012 15:59
  • Teria que adaptar sua estrutura de busca para esta abaixo:

    declare @au_id char( 11 ) 
    set rowcount 0 
    select au_id,au_lname,au_fname into #mytemp from authors 
    set rowcount 1 
    select @au_id = au_id from #mytemp 
    while @@rowcount <> 0 
    begin 
         set rowcount 0 
    	 update loja_compra set qtde_entregue=(select sum (qtde_entregue)from 
    loja_compra_produto where pedido=@au_id),qtde_entregar=(select sum (qtde_entregar) from 
    loja_compra_produto where pedido=@au_id),valor_entregue=(select sum (valor_entregue) from 
    loja_compra_produto where pedido=@au_id),valor_entregar=(select sum (valor_entregar) from 
    loja_compra_produto where pedido=@au_id)
    where  pedido=@au_id
    	 
    
         delete #mytemp where au_id = @au_id 
         set rowcount 1 
         select @au_id = au_id from #mytemp 
    end 
    set rowcount 0 
    

    Eu não uso cursor por onerar muito o banco de dados e devido a politicas de algumas empresas não permitirem.

    Boa sorte

    • Marcado como Resposta tiagofrança quarta-feira, 12 de dezembro de 2012 18:09
    quarta-feira, 12 de dezembro de 2012 12:14