dworksheet工单表
worksheet_id serv_order_id worksheet_status
1 1 0
2 1 9
3 2 9
4 2 9
5 3 9
6 3 9
现在我要取出serv_order_id,提取原则为只有worksheet_status都是9的才能取,如上serv_order_id=1不满足条件。
只有2,3才满足条件。这个SQL怎么写。
worksheet_id serv_order_id worksheet_status
1 1 0
2 1 9
3 2 9
4 2 9
5 3 9
6 3 9
现在我要取出serv_order_id,提取原则为只有worksheet_status都是9的才能取,如上serv_order_id=1不满足条件。
只有2,3才满足条件。这个SQL怎么写。
解决方案 »
- 求助oracle存储过程高手:多表连接取动态表的动态字段(多个,字段名由其它表取)之和。
- imp 只导入部分数据,然后就抛出忽略剩余行的错误
- BACKUP_DISK_IO=n ,和BACKUP_TAPE_IO_SLAVE=ture 两个参数
- 能否用java类的某一个方法生成oracle视图?
- 存储过程执行不下去的问题
- 向orcal插入数据,提示ORA-00911,怎么回事啊????????????急!!!!!!!!!!!!!!!!!!!!
- 在机器没联网的情况下 能否使用ORACLE
- 请牛人帮助解决拉!急!!急!!急!!
- 关于数据库链接找不到tns的问题
- oracle查询分页显示
- 求一条SQL语句
- 如何比较一个表中两个查询结果的差积
worksheet_id varchar(40) not null,
serv_order_id varchar(40) ,
worksheet_status)insert into dworksheet
select 1 , 1, 0 from dual
union
select 2,1,9 from dual
union
select 3,2,9 from dual
union
select 4,2,9 from dual
union
select 5,3,9 from dual
union
select 6,3,9 from dual;
commit;
select serv_order_id,count(decode(worksheet_status,9,1,'')),count(*) from dworksheet d
group by serv_order_id
having count(decode(worksheet_status,9,1,''))=count(*)
;
FROM (
SELECT COUNT(serv_order_id) OVER (PARTITION BY serv_order_id) AS LAB1,
COUNT(serv_order_id) OVER (PARTITION BY serv_order_id,worksheet_status) AS LAB2,
worksheet_id, serv_order_id, worksheet_status
FROM dworksheet
)
WHERE worksheet_status = 9 AND LAB1 = LAB2
from (select serv_order_id, worksheet_status
from dworksheet
group by serv_order_id, worksheet_status
having count(*) = 1)
where worksheet_status = 9