2017-12-14 17 views
-1

現在、現在参加している2つの異なるレポートを駆動する2つの日付フィールドを持つことに問題があります。 1つはMonth_start_dt、もう1つはTran_dtです。 Month_start_dtは収益レポートを作成しており、Tran_dtはパフォーマンスレポートを作成しています。 2つのクエリを新しいテーブルにステージングしましたが、2つの日付が同じcustomer_idと一致しません。私は2つの日付をどのように組み合わせることができるかを見たいので、Tableauレポートでは、パフォーマンスと収益情報に1つの日付フィルタを使用できます。データセット内の2つの日付フィールドに結合する

おかげで

現在のデータは、次のようになります。

customer_id/month_start_dt/Tran_dt 

11111/12-1-2017/4-20-2017 

22222/11-1-2017/12-3-2017 

33333/9-1-2016/4-6-2017 

44444/2-1-2017/5-3-2016 

がしたい、このように見えるようになる:

customer_id/month_start_dt 

11111/12-1-2017 

11111/4-20-2017 

22222/11-1-2017 

22222/12-3-2017 

33333/9-1-2016 

33333/4-6-2017 

44444/2-1-2017 

44444/5/3/2016 
+0

正しくタグ付けしてください!!!! MySQLの> Postgresの! – Eric

+1

はい。どのRDBMSを使用しているのかを最初に把握する – Strawberry

答えて

0

あなたはcross joinを使用して、任意のテーブルの行を掛けることができますし、単に2行を返すサブクエリを使用することができます。

| customer_id |  month_start_dt |  dt_type | 
|-------------|----------------------|----------------| 
|  11111 | 2017-12-01T00:00:00Z | month_start_dt | 
|  11111 | 2017-04-20T00:00:00Z |  Tran_dt | 
|  22222 | 2017-11-01T00:00:00Z | month_start_dt | 
|  22222 | 2017-12-03T00:00:00Z |  Tran_dt | 
|  33333 | 2016-09-01T00:00:00Z | month_start_dt | 
|  33333 | 2017-04-06T00:00:00Z |  Tran_dt | 
|  44444 | 2017-02-01T00:00:00Z | month_start_dt | 
|  44444 | 2016-05-03T00:00:00Z |  Tran_dt | 

注意、両方のMySQL & Postgresの中に作品上記のクエリを、私たちがターゲットにどのDBタイプを正確に知っていれば、それは本当に役立ちます。例えば:

select 
    customer_id 
    , case when rn = 1 then month_start_dt else Tran_dt end month_start_dt 
    , case when rn = 1 then 'month_start_dt' else 'Tran_dt' end dt_type 
from table1 
cross join (select 1 as rn union all select 2) cj 

が生じるであろう。正しいdbでタグ付けしてください

関連する問題