2016-09-13 6 views
0

私が持っているような2表:SQL - 2テーブルから比較日付で行を選択する方法

表1:

ID | COMPANY_NAME | Rank | FIRST_REGIST_DATE 

    1   A   1   2017-09-01 
    2   B   2   2017-09-05 

表2:

ID | COMPANY_NAME | RANK | FIRST_REGIST_DATE 
1   A   3   2017-09-03 
2   C   4   2017-09-04 

IデータFIRST_REGIST_DATEとRANKを持つ会社を選択する必要があります 会社の場合、最初の2件の登録があります:結果がそれを好きになるでしょう期待

: - - ランク3日 A社(2017年9月1日::会社Aは、上記の最初の日付を持っていますEX)食べた、私たちは 大きな以前の日付とRANK を選択します2017年9月1日

私が正しく質問を理解していれば、あなたが会社の詳細と、最初の登録日を含むデータを持つ2つのテーブルがあり、早いと行を表示したい私は、その場合には

+1

あなたの期待どおりの結果は? –

+0

申し訳ありませんが、私は答えを更新しました。 –

+0

'FIRST_REGIST_DATE'や' RANK'の優先順位は何ですか?すなわち、会社B&Cは同じIDを持っています。 Bの日付は後になりますが、Cよりも上位です。最初に見たいものは何ですか? –

答えて

1

これは技術的に質問に答えますが、部屋の象を避けています(どちらのIDが優先されますか?)。両方のテーブルに重複する可能性のあるID({B、C}のIDが2)があるため、どのIDが優先されて他のテーブルIDの名前が変更されるかについてルールを定義する必要があります。

Select COMPANY_NAME 
      ,MIN(FIRST_REGIST_DATE) as REGIST_DATE 
    from (
      SELECT * 
      FROM #table1 
      UNION ALL 
      SELECT * 
      FROM #table2 
    ) t3 
    Group by COMPANY_NAME 

質問が回答された後、OPはあなたの質問を(RANKを追加して)変更しないでください。 変更のために:친절して貢献しました@ toha

Select COMPANY_NAME 
      ,MIN(FIRST_REGIST_DATE) as REGIST_DATE 
      ,MAX(RANK) as RANK 
    from (SELECT * 
      FROM #table1 
      UNION ALL 
      SELECT * 
      FROM #table2) t3 
    Group by COMPANY_NAME 
+0

異なるIDを指摘してくれてありがとう、私はそれに応じて私の答えを変更します。 –

+0

select文にdistinctがあるのはなぜですか?company_nameでグループ化したので、各会社ごとに1つのレコードを取得するため、distinctは必要ありません。 –

+0

ありがとうございました。しかし、それは私の間違いであるように見えます。私はちょうど期待結果を追加しました。納得して申し訳ありません:( –

1

を選択する必要があります最初の登録日。次のクエリが役に立ちます。

SELECT company_name, MIN(fisrt_regist_date) 
(
SELECT company_name, fisrt_regist_date 
FROM table1 
UNION ALL 
SELECT company_name, fisrt_regist_date 
FROM table2 
) tab1 
FROM tab1 
GROUP BY company_name 

上記のクエリは、最初の表の結果と第二のテーブルを結合して、最も古い登録日と一緒にあなたの会社の詳細情報が表示されます。

+0

UNION ALLの代わりにUNIONを使用することができます。これは、この操作を実行するために利用可能なすべてのレコードを必要とせず、私の理解によれば正しい答えです。 – Susang

+0

企業Bが表2にもない限り、それは複数のIDを持つ企業のために複製されることになります(2を除いたIDが割り当てられます)。 –

+0

@Suraz UNIONはUNION ALLに比べてパフォーマンス面でコストがかかります。 –

関連する問題