从select语句更新两列?

时间:2014-09-01 08:39:44

标签: oracle

我正在尝试更新select语句中的两列,但我收到错误消息

ORA-00927: missing equal sign

拜托,谁能告诉我为什么?

UPDATE table1 a 
   SET co1 ,co2 = (SELECT COUNT (*),
                          sum(cost)/4
                     FROM table2 b
                    WHERE a.customer_id = b.cust_info_customer_id
                      AND tariff_info = 2);

1 个答案:

答案 0 :(得分:-1)

由于您没有提供任何输入:

create table table1(
  co1 number,
  co2 number,
  customer_id number
)
insert into table1 values (1,1, 1)

select * from table1

CO1 CO2 CUSTOMER_ID
-------------------
  1   1           1

UPDATE table1 a 
   SET co1 = (
              with table2 as (
                select level cost, 1 cust_info_customer_id from dual connect by rownum < 5
             )
             SELECT COUNT (*)
               FROM table2 b
              WHERE a.customer_id = b.cust_info_customer_id
             )
     , co2 = (
              with table2 as (
                select level cost, 1 cust_info_customer_id from dual connect by rownum < 5
             )
             SELECT sum(cost)/4
               FROM table2 b
              WHERE a.customer_id = b.cust_info_customer_id
             )
select * from table1

CO1 CO2 CUSTOMER_ID
-------------------
  4 2.5           1
相关问题