必要なすべてのデータを提供するこの ORACLE SQL クエリを作成しました。
SELECT ci.record_no,
ci.communication_no,
ctt.description AS "TOPIC",
ctc.description AS "CATEGORY",
cc.sequence_no
FROM communication_instance ci,
communication_category cc,
ct_category ctc,
ct_topic ctt,
ct_type ctp,
department d,
communication_record cr
WHERE ci.record_no = cc.record_no
AND ci.record_no = cr.record_no
AND cc.topic = ctc.topic
AND cc.topic = ctt.code
AND cc.category = ctc.category
AND ci.communication_type = ctp.code
AND ci.creator_department = d.code
AND ci.record_no = '1565852'
ORDER BY 2
データ出力は次のようになります。
|RECORD_NO | COMMUNICATION_NO | トピック | カテゴリー | SEQUENCE_NO|
1565852 1 Inter Stat 1 1565852 1 Clien Call 2 1565852 2 Inter Stat 1 1565852 2 Clien Call 2 1565852 3 Inter Stat 1 1565852 3 Clien Call 2
次の関係に注意してください。
- 1
communication_no
は の 1 つのインスタンスですrecord_no
(つまり、communication_no
行は 3 つだけである必要があります) 。 - すべての一意の に対して、複数の
record_no
が存在する可能性がありますsequence_no
- 1 つの に対して複数
sequence_no
の が存在する可能性があるためrecord_no
、それぞれのcommunication_no
は 1 と 2 になりますsequence_no
3 つの一意のcommuncation_no
レコードtopic
を表示するデータを取得しようcategory
としてsequence_no
います。したがって、列は次のようになります。
- RECORD_NO
- 通信_いいえ
- トピック_1
- CATEGORY_1
- SEQUENCE_NO_1
- トピック_2
- CATEGORY_2
- SEQUENCE_NO_2
たとえば、communication_no
= 1 は 1 行になり、フィールドは (順番に) 次のようになります。
- 1565852
- 1
- インテル
- 統計
- 1
- クライアント
- 統計
- 2
これは可能ですか?