select decode(sign(e-f),1,a||b,null) from tbname; 不知道你是不是这个意思
你们都搞错了!我讲的是id1的值相同,id2的值都相同的不同数据之间的判断。 如下表: 列 id1 id2 e f 1 2 84 78 2 1 13 27 1 2 76 63 1 1 23 48 1 3 42 27 1 3 32 16 2 1 41 25 3 2 24 12 1 3 92 42要求查询结果为: id1 id2 1 2 1 3 3 2解析: 因为id1=1 and id2=2的两行数据都是e>f 因为id1=1 and id2=3的三行数据都是e>f 因为id1=3 and id2=2的一行数据是e>f 都符合要求!而id1=2 and id2=1的两行数据一个是e>f,一个是e<f, id1=1 and id2=1的一行数据是e<f, 所有不符合要求!
select distinct id1,id2 from Table where e>f and id2 in (select distinct id2 from Table where e>f )这个语句我试过,应该答到你的要求了
Have a try: select distinct id1, id2 from tab where e>f minus select distinct id1, id2 from tab where e<f
doYouJ(今天你J了吗?) 的写法是最好的。建议采用这种。
请问doYouJ(今天你J了吗?) 如id1=1 and id2=3的三条数据,你上面的写法是用什么语句判断他的三条数据都符合e>f的?
ern(学习Oracle) 讲的存储过程是怎么做的???谢谢!!
明白了!谢谢doYouJ(今天你J了吗?)!!!
u r welcome. Exactly, it should be: select distinct id1, id2 from tab where e>f minus select distinct id1, id2 from tab where e<=f
select id1,id2 from tab group by id1,id2 having min(e)>max(f)
楼上如果是这种数据呢? id1 id2 e f 1 2 4 3 1 2 2 1
select id1,id2 from tab group by id1,id2 having e>f 这个语句是否不能实现对每个id1,和id2的值相同的数据进行检测是否满足e>f???
是否不能对每一个相同id1,id2 的数据都进行检测是否满足d>f???
SELECT a.workflow_id workflow_id, a.system_id system_id, nvl(a.NAME, d.DESCRIPTION) workflow_name, a.workflow_type_id workflow_type_id, a.summary summary, b.NAME system_name, a.start_date start_date, a.end_date end_date, a.deadline deadline, a.system_status descr FROM workflow a, systems b, workflow_monitor c, workflow_type d, task e WHERE a.system_id = b.system_id AND a.system_id = d.system_id(+) and a.workflow_type_id = d.workflow_type_id(+) AND a.system_id = e.system_id and a.workflow_id= e.workflow_id and a.workflow_type_id = c.workflow_type_id and c.system_id = b.system_id AND c.user_id = 'admin' AND a.system_id = '1' AND a.start_date > to_date('2003-01-01', 'yyyy-mm-dd') AND a.start_date < to_date('2004-03-30', 'yyyy-mm-dd') AND NVL(a.WORKFLOW_STATUS, 2) = 0 AND a.END_DATE is null and (SYSDATE <= a.deadline or a.deadline is null) and e.END_DATE is null and NOT EXISTS (SELECT 'X' FROM task e where a.workflow_id=e.workflow_id and SYSDATE > e.deadline and e.deadline is not null) ORDER BY a.start_date ASC 这个语句可以优化吗???我查找好几个小时才有结果!很慢!
不知道你是不是这个意思
如下表:
列 id1 id2 e f
1 2 84 78
2 1 13 27
1 2 76 63
1 1 23 48
1 3 42 27
1 3 32 16
2 1 41 25
3 2 24 12
1 3 92 42要求查询结果为:
id1 id2
1 2
1 3
3 2解析:
因为id1=1 and id2=2的两行数据都是e>f
因为id1=1 and id2=3的三行数据都是e>f
因为id1=3 and id2=2的一行数据是e>f
都符合要求!而id1=2 and id2=1的两行数据一个是e>f,一个是e<f,
id1=1 and id2=1的一行数据是e<f,
所有不符合要求!
select distinct id1, id2 from tab where e>f
minus
select distinct id1, id2 from tab where e<f
如id1=1 and id2=3的三条数据,你上面的写法是用什么语句判断他的三条数据都符合e>f的?
Exactly, it should be:
select distinct id1, id2 from tab where e>f
minus
select distinct id1, id2 from tab where e<=f
id1 id2 e f
1 2 4 3
1 2 2 1
这个语句是否不能实现对每个id1,和id2的值相同的数据进行检测是否满足e>f???
a.workflow_type_id workflow_type_id, a.summary summary, b.NAME system_name, a.start_date start_date,
a.end_date end_date, a.deadline deadline, a.system_status descr
FROM workflow a, systems b, workflow_monitor c, workflow_type d, task e
WHERE a.system_id = b.system_id AND
a.system_id = d.system_id(+) and a.workflow_type_id = d.workflow_type_id(+) AND
a.system_id = e.system_id and a.workflow_id= e.workflow_id and
a.workflow_type_id = c.workflow_type_id and c.system_id = b.system_id AND c.user_id = 'admin'
AND a.system_id = '1' AND a.start_date > to_date('2003-01-01', 'yyyy-mm-dd') AND
a.start_date < to_date('2004-03-30', 'yyyy-mm-dd') AND NVL(a.WORKFLOW_STATUS, 2) = 0 AND
a.END_DATE is null and (SYSDATE <= a.deadline or a.deadline is null) and
e.END_DATE is null and NOT EXISTS (SELECT 'X' FROM task e where a.workflow_id=e.workflow_id and SYSDATE > e.deadline and e.deadline is not null)
ORDER BY a.start_date ASC
这个语句可以优化吗???我查找好几个小时才有结果!很慢!