locked
Select no UPDATE RRS feed

  • Pergunta

  • Ola pessoal,

    tenho uma trigger que quando disparar precisava totalizar uma coluna.

    em t-sql tem como usar select no update ? algo assim:

    update (select count(0) as tot from coisa) set coluna_tot = tot

    ?
    eu lembro que no pl/sql tem algo assim mais não lembro exatemente a sintaxe.


    sexta-feira, 15 de junho de 2007 21:22

Todas as Respostas

  •  

    ualex,

     

    ve se isso te ajuda..

     

    update tabelaA set tabelaA.colunaTotal = sum(tA.SeuCampo) 

    from tabelaA tA inner join tabelaB tb on tA.campo = tB.campo

    where ...

     

     

    abraco!

    sexta-feira, 15 de junho de 2007 22:25
  • Fiz um exemplo bacana para melhor entendimento. 

    declare @tabela1 table(CPF int, Contratos varchar(3),Dias_Atraso int)
    declare @tabela2 table(CPF int, Contratos varchar(255),Dias_Atraso int)
    
    
    insert into @tabela1 (CPF,Contratos,Dias_Atraso) 
    Select CPF,Contratos, Dias_Atraso
    from
    (
    	select 123 CPF,'xyz' Contratos,100 Dias_Atraso
    	union all 
    	select 123 CPF,'qwe' Contratos,110 Dias_Atraso
    	union all 
    	select 123 CPF,'asd' Contratos,120 Dias_Atraso
    	union all 
    	select 345 CPF,'ghj' Contratos,200 Dias_Atraso
    	union all 
    	select 345 CPF,'yui' Contratos,210 Dias_Atraso
    	union all 
    	select 234 CPF,'wer' Contratos,311 Dias_Atraso
    	
    ) as t1
    
    insert into @tabela2 (CPF,Contratos,Dias_Atraso) 
    Select CPF,Contratos, Dias_Atraso
    from
    (
    	select 123 CPF,'xyz' Contratos,100 Dias_Atraso
    	union all 
    	select 123 CPF,'qwe' Contratos,110 Dias_Atraso
    	union all 
    	select 123 CPF,'asd' Contratos,120 Dias_Atraso
    	union all 
    	select 345 CPF,'ghj' Contratos,200 Dias_Atraso
    	union all 
    	select 345 CPF,'yui' Contratos,210 Dias_Atraso
    	union all 
    	select 234 CPF,'wer' Contratos,311 Dias_Atraso
    	
    ) as t2
    
    update @tabela2 set Contratos='Ricardo Lacerda' 
    from 
    	@tabela1 t1 
    inner join
    	@tabela2 t2
    on 
    	t1.CPF=t2.CPF
    where 
    	t1.CPF = 123
    
    Select * from @tabela2 
    


    Ricardo Lacerda

    quinta-feira, 2 de abril de 2015 03:18
  • Fiz um exemplo bacana para melhor entendimento. 

    declare @tabela1 table(CPF int, Contratos varchar(3),Dias_Atraso int)
    declare @tabela2 table(CPF int, Contratos varchar(255),Dias_Atraso int)
    
    
    insert into @tabela1 (CPF,Contratos,Dias_Atraso) 
    Select CPF,Contratos, Dias_Atraso
    from
    (
    	select 123 CPF,'xyz' Contratos,100 Dias_Atraso
    	union all 
    	select 123 CPF,'qwe' Contratos,110 Dias_Atraso
    	union all 
    	select 123 CPF,'asd' Contratos,120 Dias_Atraso
    	union all 
    	select 345 CPF,'ghj' Contratos,200 Dias_Atraso
    	union all 
    	select 345 CPF,'yui' Contratos,210 Dias_Atraso
    	union all 
    	select 234 CPF,'wer' Contratos,311 Dias_Atraso
    	
    ) as t1
    
    insert into @tabela2 (CPF,Contratos,Dias_Atraso) 
    Select CPF,Contratos, Dias_Atraso
    from
    (
    	select 123 CPF,'xyz' Contratos,100 Dias_Atraso
    	union all 
    	select 123 CPF,'qwe' Contratos,110 Dias_Atraso
    	union all 
    	select 123 CPF,'asd' Contratos,120 Dias_Atraso
    	union all 
    	select 345 CPF,'ghj' Contratos,200 Dias_Atraso
    	union all 
    	select 345 CPF,'yui' Contratos,210 Dias_Atraso
    	union all 
    	select 234 CPF,'wer' Contratos,311 Dias_Atraso
    	
    ) as t2
    
    update @tabela2 set Contratos='Ricardo Lacerda' 
    from 
    	@tabela1 t1 
    inner join
    	@tabela2 t2
    on 
    	t1.CPF=t2.CPF
    where 
    	t1.CPF = 123
    
    Select * from @tabela2 
    


    Ricardo Lacerda

    Lacerda,

    Por gentileza, não vamos ressuscitar post antigo, existe uma regra e boa prática aqui nos fóruns, que posts com mais de 2 anos não são mais respondidos, são avaliados e caso já existe algum post com a resposta a mesma é marcada.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 2 de abril de 2015 18:10
  • Ok Junior! Eu não sabia mesmo da regra! Se existir mais alguma regra me envie o link para eu ler por favor. Eu fiz o filtro pelas questões não respondidas e mandei bala!  Obrigado e um grande abraço.


    Ricardo Lacerda


    quinta-feira, 2 de abril de 2015 20:05