在sql
我有一个方案,想要为constant
condition data
之一query
以及我们要添加的constant data
添加sub query
值来自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-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'.
将是这样的(因为大多数sql数据是保密的,我能够共享实际查询)。
subselect
问题data
将返回一组ORA-01427: single-row subquery returns more than one row
。所以我收到错误best
。
此外,rows
解决此问题的方法是什么。
简单地说:方案是,我想基于来自another
行但来自同一父对象的值来计算一个joins
值。
据我所知,现在 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
相反,我想要
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
--------------------------------------------
更新了问题
输入购买日期从:2011-08-19到:2011-08-25,我将从UI
获取表值:
6
但是在购买日期,我的add
值为subtract
,stay start date
或condition_value
来自purchase date
。所有2011-08-25
都属于一个父对象的地方,我将通过其父表确定
输出:我想将6
计算为2011-08-19
(保持开始日期)+ {{1}}
(购买日期)= {{1}}
答案 0 :(得分:1)
要完成你似乎想要做的事情,你可以尝试像
这样的事情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'
祝你好运。
答案 1 :(得分: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'