0

我有一个要求,如果给出了 PO_ID 范围,那么我需要执行以下操作:

  1. 如果 PO_ID 范围中的 PO_ID 存在于 PS_DISTRIB_LINE 中,则打印 PO_ID 和 Voucher ID,如果没有,则从 PS_PO_HDR 打印 PI_ID 和 PO_DT。

如何实现这一点。

联合不起作用,我无法使用中断逻辑,因为如果 PS_DISTRIB_LINE 中存在数据,那么我将在 PO_ID 下方打印 PO_AMT Total 的总和,但在其他情况下我不是。

4

1 回答 1

0

UNION 在 SQR 中是可能的,但语法很困难。您需要将 UNION 放在括号中,并确保在所选项目后放置逗号。在下面的示例中,我在 a.name、a.first_name 和 a.last_name 之后放置了逗号。对 b.name、b.first_name 和 b.last_name 重复此操作。

我已经运行了这个例子,这对我有用:

begin-SELECT
employee_name.name
employee_name.first_name
employee_name.last_name

    Show 'employee_name.name: ' &employee_name.name
    Show 'employee_name.first_name: ' &employee_name.first_name
    Show 'employee_name.last_name: ' &employee_name.last_name

from
(
select
a.name,
a.first_name,
a.last_name
from ps_names a
where name_type = 'PRI'
and emplid = '000000001'
union
select
b.name,
b.first_name,
b.last_name
from ps_personal_data b
where emplid = '000000001'
) employee_name
end-SELECT
于 2014-08-15T02:03:03.480 回答