私はオラクルにほぼ完成したSQLスクリプトを持っていますが、最後の問題で立ち往生しています。
データにアクセスしている2つのデータベーステーブルがあり、新しい行をデータベースの新しいテーブルに挿入しています。データベース テーブルの 1 つには口座番号列と記述子列があり、各口座番号には 3 つの記述子値があり、すべて同じ形式です。データを取得したい 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
、「Company:」テキストを含む記述子行のみを抽出するのに役立つ特別な句があることです。を入力するAND
と、テーブルにデータがまったく入力されません。2 つの行から異なる列のデータが必要な場合、データが同じ行にあると予想されるためだと思います。and ステートメントを使用するとOR
、まったく新しい行が追加されます。
これが私のスクリプトです:
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 ステートメントを残しました。それが私が得ることができる最も近いものです。
さらに情報が必要な場合は、お知らせください。