我在 oracle 中有一个几乎完整的 SQL 脚本,但我被困在最后一个问题上。
我有 2 个数据库表,我从中访问数据,并将新行插入到数据库中的新表中。其中一张数据库表有一个帐号列和一个描述符列,每个帐号有3个描述符值,格式相同。还有第三列,我想从中获取数据。这是一个视觉效果:
Account # | Descriptor | Value
1 Cost Center: ASDF CC123
1 Company: ASDF123 F123
1 Fund: JKL R123
2 Cost Center: ASDF12 CC456
2 Company: ASDF456 F456
2 Fund: JKL23 R456
我希望我的决赛桌是这样的:
Account_Number | Company_Description | Cost_Center_Value
1 Company: ASDF123 CC123
2 Company: ASDF456 CC456
Cost_Center_Value 列和 Company_Description 列的元素来自不同的行,但相同的帐户对象。
我遇到的问题是我有一个特殊的where
子句来帮助我只提取带有“公司:”文本的描述符行。如果我输入一个AND
,则该表根本不会填充,我认为是因为它希望数据位于同一行中,而我想要来自 2 行但不同列的数据。如果我使用 andOR
语句,它会添加一个全新的行。
这是我的脚本:
create table mydb.test1 as
select distinct substr(testdb.table1.FAO, 1) as Account_Number,
'CM' || substr(testdb.table1.DESCRIPTOR, 18) as Division,
substr(testdb.table1.value, 1) as Department,
substr(testdb.table2.Workday_Description, 1) as Description,
from testdb.table1
join testdb.table2
on testdb.table1.fao = testdb.table2.workday_number
where testdb.table2.descriptor like 'Company for%'
OR testdb.table1.value like 'CC%'
order by Account_Number Desc
我把 OR 语句留在了那里,以显示我一直在玩什么。这是我能得到的最接近的。
如果需要更多信息,请告诉我。