暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 使用来自另一列的派生值创建列

askTom 2017-05-13
233

问题描述

你好,

如何在客户/患者表中创建名为 “ACCOUNT_BALANCE” 的列,以保留帐单表中金额的总和?

计费表对每个服务进行计费,因此每个客户在计费表中都会有多个记录。因此,我们需要在客户表中创建一个名为 “account_balance” 的新列,该列将始终为每个客户生成所有计费金额的总和。


请指教。


示例:

创建表格患者
(“PATIENT_ID” 编号 (10,0) 不为空启用,
"LOCATION_ID" 编号 (10,0) 约束P_LOCATION_ID_fk
REFERENCES LOCATION NOT NULL ENABLE,
“FIRST_NAME” VARCHAR(25) 不为空启用,
“LAST_NAME” VARCHAR(25) 不为空启用,
“中间名称” VARCHAR(30),
“帐户余额” 编号 (10,4) 不为空启用,
“创建日期” 日期默认系统日期不为空启用,
主键 (“患者id”)
);


创建表PATIENT_BILLING
(“ACCOUNT_ID” 编号 (10,0) 不为空启用,
“访问id” 编号 (10,0) 约束B_VISIT_ID_fk
引用医学访问不为空启用,
“PAITENT_ID” 编号 (10,0) 约束B_PAITENT_ID_fk
引用患者不为空启用,
"BILLING_DATE" 日期不为空启用,
“账单金额” 编号 (10,4) 不为空启用
约束检查 _ 计费 _ 金额检查 (计费 _ 金额> = 1),
-“PATIENT_BALANCE” 编号 (10,4) 不为空启用,
“创建日期” 日期默认系统日期不为空启用,
主键 (“ACCOUNT_ID”)
);


我们试图做这样的事情,但它不起作用。

更改表患者修改始终生成的 “帐户余额” 编号 (10,4)
(SUM (patient_billing.billing_imount),其中PATIENT.Billing_imount = patient_billing.billing_imount),

专家解答

虚拟列不能跨表,也不能包含聚合。它们用于同一行中的列上的表达式。

如果要维护总和,请使用此处描述的实体化视图方法

http://www.oracle.com/technetwork/testcontent/o58asktom-101055.html

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论