0

結合して出力をまとめて表示したい 4 つのテーブルがあります。Oracle SQL Developer の構文がどのように機能するかわかりません。これはプログラマーにとって簡単な質問であることはわかっています。コードがどのように見えるかについて誰かが提案できることを望んでいました。

テーブルは次のとおりです。 JNL1 JNL2 JNL3 JNL4

JNL1
JNL2
JNL3
JNL4

UserCode=Automation で結果を表示し、日付を現在の 1 日前に表示したいだけです。そのためのコードは次のとおりです。

  UserCode = 'Automation' AND     
  CONVERT(VARCHAR,LEFT(DATE,8))=CONVERT(VARCHAR(8),GETDATE()-1,112)

これら 4 つのテーブルすべてに共通するキーは、ItemID、Date、および UserCode です。

クエリがどのようになるかわかりませんが、結合テーブル クエリと UserCode/Date クエリを個別のクエリとして生成できます。しかし、それらを 1 つのクエリに結合すると、あいまいな列名でエラーが発生するか、データベースからデータが表示されずにクエリが実行されます。

4

1 に答える 1

2

テーブルに参加しないでください。1つのテーブルのみからデータを取得する必要があり、テーブル構造が同じであるため、複数のテーブルを持つことができますunions

-- Oracle データベースでは、列名を日付にすることはできません。date列名は c_date-であると想定しています。

select ItemID, c_Date, and UserCode
from Jul1
where UserCode = 'Automation' 
  AND c_date = trunc(sysdate) -1
union all 
select ItemID, c_Date, and UserCode
from Jul2
where UserCode = 'Automation' 
  AND c_date = trunc(sysdate) -1
union all 
select ItemID, c_Date, and UserCode
from Jul3
where UserCode = 'Automation' 
  AND c_date = trunc(sysdate) -1
union all 
select ItemID, c_Date, and UserCode
from Jul4
where UserCode = 'Automation' 
  AND c_date = trunc(sysdate) -1

*sysdateは、現在の日付と時間の値を返すシステム関数です。

于 2013-06-23T23:25:51.810 に答える