私はジョインで作業する際に論理的な困惑に苦しんでいます。 EmpStinとEmpEINの下に2つのテーブルがあります。だから私がしたいことは、これらの2つのテーブルを結合し、以下のような出力を生成することです。コンシューマーが1か月間にEmpNumberを持っていて、別の行にステータスを取得する必要がある場合は、ステータスはEmpNumberのヌルエントリ でなければなりません。複数の条件に基づいて2つのテーブルを結合する際に問題が発生する
出力を生成するためにこれらの2つのテーブルをどのように結合できるかわかりません。いくつかのSQLプロが私を助けることができるなら、それは素晴らしいだろう。
EmpStatus:
ConsumerID JanStatus FebStatus MarStatus AprStatus MayStatus
1001 P P P P P
1002 P P P P P
1003 P P P P P
1004 P P P P P
1005 P P P P P
EmpEIN:
ConsumerID EmpNumber EmpNumberStartDate EmpNumberEndDate
1001 102020202 1/1/2015 31/1/2015 -- dates in dd/mm/yyyy format
1001 210201021 1/2/2015 31/3/2015
1002 NULL NULL NULL
1003 NULL NULL NULL
1004 NULL NULL NULL
1005 NULL NULL NULL
OUTPUT:
ConsumerID EmpNumber JanStaus FebStatus MarStatus AprStatus MayStatus
1001 102020202 P NULL NULL NULL NULL
1001 210201021 NULL P P NULL NULL
1001 NULL NULL NULL NULL P P
1002 NULL P P P P P
1003 NULL P P P P P
1004 NULL P P P P P
1005 NULL P P P P P
「P」のためのロジックは、いかなる意味を成していないようだ - プラスあなたの終了日の欄には、日付の一貫性がありません。何らかの説明と実際に試したことをご記入ください。 – MageeWorld
@MageeWorldこの問題のために、Pを定数と見なすことができます。基本的にステータスです。従業員1001にはEmpNumber 102020202が1/1/2015から31/1/2015の期間割り当てられていたので、列JanStatusのステータスPは出力のEmpNumberの行に対してのみでなければなりません。 –
JanStatusなどの列がありますが、EmpEINの日付は(おそらく異なる)年です。 Jan2015Statusなどを意味しましたか? EmpStatusとOUTPUTの列の数(場合によっては名前)が異なるか、「2015年1月から2015年1月」のような固定ウィンドウがありますか?修正されていない場合は、動的SQLが必要です。ほとんどの場合、優れた解決策ではありません。 – mathguy