Sql和oracle apex,“单行子查询返回多行”-错误
这是我的问题。我想展示不同日期的价格差异Sql和oracle apex,“单行子查询返回多行”-错误,sql,oracle,oracle11g,oracle-apex-5.1,Sql,Oracle,Oracle11g,Oracle Apex 5.1,这是我的问题。我想展示不同日期的价格差异 select id, PRODUCT, PRICE, P_DATE, (SELECT(t2.price - t1.price) AS PRICE_DIFF FROM PRODUCT_TABLE t1 CROSS JOIN PRODUCT_TABLE t2 WHERE t1.p_date = '11-DEC-17' AND t2.p_date = '12-DEC-17' AND t1.id
select
id,
PRODUCT,
PRICE,
P_DATE,
(SELECT(t2.price - t1.price) AS PRICE_DIFF
FROM PRODUCT_TABLE t1 CROSS JOIN
PRODUCT_TABLE t2
WHERE t1.p_date = '11-DEC-17' AND t2.p_date = '12-DEC-17' AND t1.id=t2.id) as PRICE_DIFF
from PRODUCT_TABLE
这是我得到的错误:
ORA-01427:单行子查询返回多行
我怎样才能避免这个错误呢?像这样的东西对你有用吗 设置:
with product_table as
(
select 1 as id, 'cheese' as product, 1000 as price, TO_DATE('11-DEC-17', 'DD-MON-YY') as p_date from dual
union all
select 1, 'cheese', 1100, TO_DATE('12-DEC-17', 'DD-MON-YY') from dual
union all
select 2, 'onion', 500, TO_DATE('11-DEC-17', 'DD-MON-YY') from dual
union all
select 2, 'onion', 550, TO_DATE('12-DEC-17', 'DD-MON-YY') from dual
)
查询:
select
t1.id,
t1.product,
t1.price,
t1.p_date, -- maybe t2.p_date? not sure which is relevant
t2.price - t1.price as price_diff
from
product_table t1
inner join
product_table t2
on t1.id = t2.id
where
t1.p_date = '11-DEC-17'
and t2.p_date = '12-DEC-17'
输出:
ID PRODUCT PRICE P_DATE PRICE_DIFF
---------- ------- ---------- --------- ----------
1 cheese 1000 11-DEC-17 100
2 onion 500 11-DEC-17 50
请考虑到链接可能会丢失,这使得这个问题对未来的用户毫无用处。正因为如此,许多读者会考虑问题的主题,你实际上在这里张贴的内容。基本上什么都没有。请更改查询以选择id、产品、价格、采购日期、,选择maxt2.price-t1.price作为pivot_表t2中的nav_return,其中t1.p_date='11-DEC-17'和t2.p_date='12-DEC-17'以及t1.id=t2.id作为pivot_表t1中的nav_retun想要获得结果可以复制表结构吗?子查询中的交叉连接保证总是返回太多行,除非这两个表只有一行每排。那是行不通的。可能是重复的