snow888 发表于 2009-07-30 12:51

求 SQL

两张表 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

ywzj 发表于 2009-07-30 21:22

回复 #1 snow888 的帖子

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)

lzlei007 发表于 2010-09-25 18:02

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)
页: [1]
查看完整版本: 求 SQL