我有一个类似下面的查询 - 更改表名等以保持实际数据的私密性
SELECT inv.*,TRUNC(sysdate)
FROM Invoice inv
WHERE (inv.carrier,inv.pro,inv.ndate) IN
(
SELECT carrier,pro,n_dt FROM Order where TRUNC(Order.cr_dt) = TRUNC(sysdate)
)
我正在根据订单从发票中选择记录。即来自发票的所有记录,这些记录与今天的订单记录相同,基于这 3 列......
现在我也想在我的选择查询中从 Order 中选择 Order_Num。这样我就可以使用整个东西将它插入到完全独立的表中,比如说orderedInvoices。
insert into orderedInvoices(seq_no,..same columns as Inv...,Cr_dt)
(
SELECT **Order.Order_Num**, inv.*,TRUNC(sysdate)
FROM Invoice inv
WHERE (inv.carrier,inv.pro,inv.ndate) IN
(
SELECT carrier,pro,n_dt FROM Order where TRUNC(Order.cr_dt) = TRUNC(sysdate)
)
)
?? - 如何在主查询中为该子查询的每条记录选择 Order_Num?
ps 我知道 trunc(cr_dt) 不会在 cr_dt 上使用索引(如果有索引..)但我无法选择记录,除非我省略了时间部分..:(