【发布时间】:2021-01-10 14:49:55
【问题描述】:
我有以下表格:
CREATE TABLE
IS_ID
(
FUND_ISIN VARCHAR2(12) NOT NULL,
FUND_QUOTE_CRNY VARCHAR2(5),
MEMBER_DESCR VARCHAR2(5),
MEMBER_RATIO NUMBER(19,8),
ALLOCATIONASSETTYPE VARCHAR2(100)
);
CREATE TABLE
IS_ID_TST
(
FUND_ISIN VARCHAR2(12) NOT NULL,
FUND_QUOTE_CRNY VARCHAR2(5),
MEMBER_DESCR VARCHAR2(5),
MEMBER_RATIO NUMBER(19,8),
ALLOCATIONASSETTYPE VARCHAR2(100)
);
我想创建这样的视图:
-
对于两个表中常见的
fund_isin字段值,检查member_descr = 'O'的member_ratio字段并从member_ratio字段值较低的表中取出fund_isin 的所有行。对于member_descr = 'O',如果IS_ID_TST表中的member_ratio对于任何fund_isin小于0,则始终从IS_ID_TST表中获取所有数据(在这种情况下,我们不需要比较IS_ID表中的数据会员比例低) -
如果
fund_isin存在于一个表中但不存在于另一个表中,则取所有这些行(双向)。 -
对于所有其他 fund_isin,仅从表
IS_ID_TST表中获取所有这些行(这可能涵盖第 1 点和第 2 点)
【问题讨论】:
-
对于点
For member_descr = 'O', if the member_ratio in IS_ID_TST table is less than 0 for any fund_isin then always take all the data from IS_ID_TST table(in this case we dont need to compare data from IS_ID table for low member ratio....这种情况是否仅适用于两个表中的公共记录,或者无论它是否在两个表中都可用,或者不总是采用 IS_ID_TST 表中的比率列? -
我们总是从 IS_ID_TST 表中获取 member_ratio 中
-
这意味着对于普通记录,我们只需要考虑配给值 > 0。我说的对吗?
-
对于 member_descr = 'O' 是,当来自 IS_ID_TST 表的 member_ratio 值 > 0 时,然后检查 IS_ID 和 IS_ID_TST 表中的常见记录,并从各个表中取出所有具有低比率的行......以前对于低比率我们从表中只取 member_descr = 'O' 的行,但现在我们必须为各自的 fund_isin 取所有行...
-
好的。想起来很复杂,但我可以验证您在问题中提到的要点并查看