+ -
当前位置:首页 → 问答吧 → 求 SQL

求 SQL

时间:2009-07-30

来源:互联网

两张表 a , b

create table a (
     id                  char(12) not null,
     classid          int          not null,
     amt               decimal(18,2),
     constraint PK_A primary key ( id,classid)
)


create table b (
      id                  char(12) not null,
      classid          int          not null,
      flag               int          not null,
      constraint PK_B primary key ( id,classid,flag)
)

要求:
用一句 SQL语句,将 a 表中的  amt 字段内容用 amt *  -1 替换,条件是 a.id = b.id ,a.classid = b.classid , b.flag = 0

作者: snow888   发布时间: 2009-07-30

merge into a using b on a.id = b.id and a.classid = b.classid and b.flag = 0 when matched then update set a.amt=a.amt*(-1)

作者: ywzj   发布时间: 2009-07-30

UPDATE a SET amt=amt+1
WHERE EXISTS (SELECT 1 FROM b WHERE a.id=b.id AND a.classid=b.classid AND b.flag=0)

作者: lzlei007   发布时间: 2010-09-25