【发布时间】:2011-12-03 03:19:47
【问题描述】:
在 Oracle 中,我有一个如下表
ID、Acct、ParentID、StartTime、地址、城市、州、邮编
这包含任意给定数量的客户帐户的多行。每当创建客户时,应用程序都会输入一行。每当客户更改其地址时,都会创建一个新行。所以一个客户只能有 1 行或 N 行。
我想做的是创建更有用的报告表,其中包括
ID、Acct、ParentID、StartTime、EndTime、地址、城市、州、邮编
每当创建新地址时,任何超过一行的记录都有 EndTime。只有一条记录的客户将留下一个 NULL EndTime。
提前致谢
使用我开发的解决方案进行了更新 -- 感谢您的输入,这就是我想出的所有内容
select
ID ,
ACCOUNT_NO ,
PARENTID
STARTTIME ,
MAX(mod_t)OVER( ORDER BY poid_id0 ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) as END_T,
ADDRESS ,
CITY ,
FIRST_NAME ,
LAST_NAME ,
STATE ,
ZIP
【问题讨论】:
-
你怎么知道两行代表同一个客户账户?我假设 Acct 是一样的,但还有什么其他的吗?
-
Stuart - 是的,Acct 是唯一的字母数字值
-
感谢 Raihan 的额外标签。新手,来了真的很喜欢这个社区,希望在未来做出贡献。
-
@DouglasKatz:不客气。另外,由于您是 StackOverflow 的新手,我想通知您,您可以通过选中答案旁边的勾号来接受对您最有帮助的答案。