SQL - Select's utéis - UPDATE em uma tabela conforme condições de outra (s)


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

O comando abaixo altera o valor da coluna DT_LIQUIDACAO conforme as condições do SELECT
   UPDATE CAD.CADTB001_CONTRATO                                            
   SET    DT_LIQUIDACAO = NULL                                              
   WHERE  CO_CONTRATO_CAD IN 
         (SELECT TB001.CO_CONTRATO_CAD  
          FROM   CAD.CADTB001_CONTRATO TB001                               
          ,      CAD.CADTB004_TRANCHE  TB004                               
          WHERE  TB001.CO_CONTRATO_CAD   = '000000000496'                         
          AND    TB004.NU_TRANCHE       IS NOT NULL                        
          AND    TB001.NU_SEQ_TRANCH_FK  = TB004.NU_SEQ_TRANCHE              
          AND    TB001.IC_PERIOD_REAJ   IN ('A', 'S')                       
          AND    TB001.MM_ANIVERSARIO   IN ( 8 , 9  )                                                     
          AND    TB004.DT_INICIO_FLUXO  <= '01.10.2005')

Using a Subquery to Update Multiple Column Values - Usando uma subconsulta atualizar vários valores de coluna

The expression list can include one or more subqueries.
Each must return a single row containing one or more values.
The number of columns that the SET clause explicitly or implicitly specifies must equal the number of values returned by the expression (or expression list) that follows the equal ( = ) sign in the multiple-column SET clause.

A lista expressão pode incluir uma ou mais subconsultas.
Cada um deve retornar uma única linha que contém um ou mais valores.
O número de colunas que a cláusula SET explícita ou implicitamente especifica deve ser igual ao número de valores retornados pela expressão (ou lista de expressões) que segue o sinal de igual (=) na cláusula SET de múltiplas colunas.

The subquery must be enclosed between parentheses.
These parentheses are nested within the parentheses that immediately follow the equal ( = ) sign.
If the expression list includes multiple subqueries, each subquery must be enclosed between parentheses, with a comma ( , ) separating successive subqueries:

A subconsulta deve ser colocada entre parênteses.
Esses parênteses são aninhados dentro dos parênteses que imediatamente siga o (=) sinal de igual.
Se a lista de expressão inclui vários subconsultas, cada subconsulta deve ser colocada entre parênteses, com uma vírgula (,) separa subqueries sucessivas:

The following examples show the use of subqueries in the SET clause:
Os exemplos a seguir mostram o uso de subconsultas na cláusula SET:

UPDATE items
   SET (stock_num, manu_code, quantity) = 
      ( (SELECT stock_num, manu_code FROM stock 
         WHERE description = 'baseball'), 2)
   WHERE item_num = 1 AND order_num = 1001;

UPDATE table1
   SET (col1, col2, col3) =
      ((SELECT MIN (ship_charge), MAX (ship_charge) FROM orders), '07/01/2007')
   WHERE col4 = 1001;