2

必要なすべてのデータを提供するこの 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  

次の関係に注意してください。

  • 1communication_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

これは可能ですか?

4

1 に答える 1