Oracle-复杂sql查询
在sql中,我得到了一个场景,比如向查询的条件数据之一添加一个常量值,我们要添加的常量数据来自子查询。粗略的sql将是这样的,因为大多数sql数据都是机密的,我无法共享实际的查询Oracle-复杂sql查询,sql,oracle,Sql,Oracle,在sql中,我得到了一个场景,比如向查询的条件数据之一添加一个常量值,我们要添加的常量数据来自子查询。粗略的sql将是这样的,因为大多数sql数据都是机密的,我无法共享实际的查询 SELECT * FROM test_table tt INNER JOIN test_table_1 tt1 ON tt.id = tt1.id WHERE TO_DATE(tt1.CONDITION_VALUE, 'yyyy-mm-dd') >= TO_DATE('2011
SELECT * FROM test_table tt
INNER JOIN test_table_1 tt1
ON tt.id = tt1.id
WHERE TO_DATE(tt1.CONDITION_VALUE, 'yyyy-mm-dd') >=
TO_DATE('2011-08-25', 'yyyy-mm-dd') + (SELECT CONDITION_VALUE
FROM test_table tt
INNER JOIN test_table_1 tt1
ON tt.id = tt1.id
WHERE CONDITION_SEQUENCE='2') AND
CONDITION_SEQUENCE='1'.
问题是subselect将返回一组数据。所以我得到了错误ORA-01427:单行子查询返回多行
还有,解决这个问题的最佳方式是什么
简单地说:这个场景是,我想计算一行的值,基于另一行的值,但是相同父对象的值
据我所知,现在连接的行为是这样的
obj1.data + [set of subquery data]
obj2.data + [set of subquery data]
....
objN.data + [set of subquery data]
相反,我想要喜欢
obj1.data + obj1.anotherData
obj2.data + obj2.anotherData
....
objN.data + objN.anotherData
更新问题
输入是购买日期从:2011-08-19到:2011-08-25,我将从UI获得
表值:
id | CONDITION_SEQUENCE | CONDITION_VALUE |
------------------------|------------------
1 | 1 | 6 | --- purchase date
2 | 1 | 4 |
3 | 2 | 2011-08-25 | --- stay start date
4 | 1 | 2011-11-25 | --- stay end date
--------------------------------------------
但是在购买日期中,我有一个值6,我想在开始日期加上或减去它。其中所有条件_值都属于一个父对象,我将通过其父表来确定
输出:我想将购买日期计算为2011-08-25停留开始日期+6
购买日期=2011-08-19要完成你似乎想要做的事情,你可以尝试以下方法
SELECT *
FROM test_table tt
INNER JOIN test_table_1 tt1
ON tt.id = tt1.id
WHERE TO_DATE(tt1.CONDITION_VALUE, 'yyyy-mm-dd') >=
TO_DATE('2011-08-25', 'yyyy-mm-dd') + tt.CONDITION_VALUE AND
tt.CONDITION_SEQUENCE = '2' AND
tt1.CONDITION_SEQUENCE = '1'
祝你好运。据我所知,你可以试试下面的方法
SELECT tt.*,tt1.* FROM test_table tt
INNER JOIN test_table_1 tt1
ON tt.id = tt1.id
INNER JOIN
test_table tt2
on tt.id = tt2.id
and tt2.CONDITION_SEQUENCE='2'
WHERE TO_DATE(tt1.CONDITION_VALUE, 'yyyy-mm-dd') >=
(TO_DATE('2011-08-25', 'yyyy-mm-dd') + tt2.CONDITION_VALUE)
AND tt.CONDITION_SEQUENCE='1'
要在何处条件或中添加的位置column@Exhausted在where条件下,请编辑您的问题并提供示例数据和所需结果。你的问题显示了一个无效的查询,没有解释你想做什么。@Gordon Linoff是的,我明白了。我更新了我的问题你的更新没有帮助。您使用的列和表达式不在数据中。用示例数据和期望的结果编辑您的问题。您好,谢谢您的时间,我从您的答案中得到了一些想法,因此我将尝试“我无法测试您的解决方案,主要是因为我的问题很难解释,我只是计划使用java解决方案,如果您不介意,您可以加入chat.stackoverflow.com/rooms/592/mysql-and-relational-databases或chat.stackoverflow.com/rooms/66379/oracle谢谢您的回答,让我试试,另外,我还试图避免额外的内部连接内部子query@Suganthan我认为这可能是一种有效的方法,而不是每次都询问过滤器让我检查的位置。。。我会给你一些时间。在db中,我也有一些其他问题,那就是阻止我如果你不能加入聊天室或