求助!!ORACLE中如何实现一张表中符合三个复杂条件的判断的查询?
发布网友
发布时间:2022-04-27 01:31
我来回答
共2个回答
热心网友
时间:2022-04-08 12:50
"姓名相同的X,如果大于Y 小于Z" 不知是不是指的求和,如果是可以参考下面
select * from table_A a
where a.name in
(select t.name
from table_A t
group by t.name having sun(x)>sum(Y) and sum(X)<sum(Z))
and a.x<a.y and a.y<a.z追问不是求和 每条记录的y ~z都是一个区间
比如 有3个姓名=A的记录
那就有3个 X值 和 3对 YZ。 分别验证 这3个X值是否 有在这3对YZ之间。
假设3个X值 分别是 20 60 100 三对 Y,Z 分别是 55 70 ,90 105.,150 165,
那么 20不在三个区间中, 55<60<70, 90<100<105. 有两条记录符合条件,返回X是60 100的记录。 YZ和X不用是同一条记录对相应的关系,也不是SUM。
追答select distinct a.*
from table_A a inner join table_A b on a.name=b.name
where a.x>b.y and a.x<b.z and a.x<a.y and a.y<a.z
这个应该可以,但我没验证,思路应该是这样的。
热心网友
时间:2022-04-08 14:08
select a.id from table_name a where exists(
select null from table_name b where b.name = a.name and b.rowid <> a.rowid)
and a.x > a.y and a.x<a.z;