易截截图软件、单文件、免安装、纯绿色、仅160KB

sql问题。 - Oracle / 基础和管理

主表 A 中,对应B表有多条数据 通过B表的mid 与A表关联。B表有个字段state,只有state全为1时才将A表中的state 设为1.
结构基本如下:
A
ID state 
1 0


B
ID MID state
1 1 1
2 1 1 
3 1 1


最后的结果需要。
AID Astate
1 1


一条sql可以实现吗
SQL code:


create table a (id int,state int)
insert into a values(1,0)

create table b (id int,mid int,state int)
insert into b values(1,1,1)
insert into b values(2,1,1)
insert into b values(3,1,1)


update a set state=1
from a
where exists(select 1 from b where a.id=b.mid and state=1)

select * from a
id state
1 1



哦。我需要一条查询sql,,a表中的值不必修改。

SQL code:
UPDATE a
SET a.state =
(SELECT MIN(nvl(b.state, 0)) from b WHERE b.mid = a.id)
WHERE EXISTS (SELECT 1 from b WHERE b.mid = a.id);


SQL code:
--或者这个
UPDATE a
SET a.state =
(SELECT case when COUNT(1)>0 then 0 else 1 end
from b
WHERE b.mid = a.id AND
a.id != 1)
WHER


相关问答:

Asp+sql server问题 - Web 开发 / ASP

我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例: ......

Windows 7 怎样安装Oracle - Oracle / 基础和管理

各位大哥,帮个忙。

下个Oracle for vista 版本的安装试试
10G和11G的 
http://www.oracle.com/technology/software/products/database/index.html 
------------------------------------------- ......

oracle与aix - Oracle / 高级技术

在系统运行的时候总是有一块磁盘始终闪红灯,进入系统后
#topas查看总是有一块磁盘%BUSY为90%以上,
数据库版本:oracle 9.2.0.7 
数据文件挂载的节点:/oradata/pcs/ 逻辑卷号lv04 
#lslv -l lv04 ......

oracle 10g data guard - Oracle / 基础和管理

做玩data guard 后
在Primary服务器 执行 
SQL>SELECT SEQUENCE#,APPLIED from V$ARCHIVED_LOG ORDER BY SEQUENCE#;
 SEQUENCE# APP
---------- ---
  13 NO
  13 YES ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号