SASの多くの変数の中から一致する日付とタイトルを見つける

ケリー

ここには、従業員の役職と、その役職がキャリア全体で開始された月と年のリストであるデータセットがあります。次のようになります。employeeIDJobTitle1MonthYearofTitle1Department1 Jobtitle2 MonthYearofTitle2Department2など。

最初のデータセットに含まれておらず、役職と役職の日付が1つしかない従業員の別のリストがあります。私の目標は、役職と月/年に基づいて2番目のデータセットの従業員と1番目のデータセットの従業員を照合することですが、複数の変数の間に情報が存在するため、この照合方法が完全にわかりません。

言い換えると、2017年1月に管理者になったMarySueがいる場合、2017年1月に管理者になったJohnDoeと彼女を照合し、さらに分析するために一致としてフラグを立てます。

残念ながら、コードをどこから始めればよいのかわからないため、試したことはありません。データは次のようになります

データセット1

employeeID JobTitle1 MonthYearofTitle1 Jobtitle2 MonthYearofTitle2
JohnDoe    Intern    Jan2016           Admin     Jan2017
JakeSo     VP        Jul2017
JulieDo    Manager   April2017

データセット2

employeeID JobTitle1 MonthYearofTitle1 
MarySue    Admin     Jan2017
JaneDoe    Admin     Jan2017  
Greg       VP        Jul2017

望ましい結果/データセット:

Employee1   Employee2   Title   Date    Flag
JohnDoe     MarySue     Admin   Jan2017 Match
JakeSo      Greg        VP      Jul2017 Match
JulieDo                 Admin   Jan2017 No Match

誰か助けてもらえますか?

momo1644

あなたは行うことができますFULL JOINLeft JOINと、使用Case一致するレコードを示すために、計算フィールドを作成するステートメントを。

以下のコードは、完全結合を実行し、フラグフィールドを作成します。

Table1とTable2の作成:1つのレコードのみが一致します

data table1;
input employeeID $ JobTitle1 $ MonthYearofTitle1 Jobtitle2 $ MonthYearofTitle2 ;
informat MonthYearofTitle1 monyy7. MonthYearofTitle2 monyy7.;
format MonthYearofTitle1 monyy7. MonthYearofTitle2 monyy7.;
datalines;
JohnDoe Intern Jan2016 Admin Jan2017
TomJones Junior Jul2016 Admin Jul2017
;
run;

data table2;
input employeeID $ JobTitle1 $ MonthYearofTitle1 ;
informat MonthYearofTitle1 monyy7.;
format MonthYearofTitle1 monyy7.;
datalines;
MarySue Admin Jan2017
JackieC Admin Jul2013
;
run;

完全参加:すべてのデータを取得するには

proc sql;
create table want as
select
t1.employeeID as t1_employeeID , t2.employeeID as t2_employeeID, 
t2.JobTitle1 as t2_JobTitle,
t2.MonthYearofTitle1 as t2_MonthYearofTitle1,
case when 
((t1.JobTitle1=t2.JobTitle1 and t1.MonthYearofTitle1=t2.MonthYearofTitle1) or (t1.JobTitle2=t2.JobTitle1 and t1.MonthYearofTitle2=t2.MonthYearofTitle1)) then "Match"
else "No-Match" end as flag
from table1 as t1 full join table2 as t2
on  (t1.JobTitle1=t2.JobTitle1 and t1.MonthYearofTitle1=t2.MonthYearofTitle1) or (t1.JobTitle2=t2.JobTitle1 and t1.MonthYearofTitle2=t2.MonthYearofTitle1)
;
quit; 

結果:

完全結合

t1_employeeID=JohnDoe t2_employeeID=MarySue t2_JobTitle=Admin t2_MonthYearofTitle1=JAN2017 flag=Match
t1_employeeID=  t2_employeeID=JackieC t2_JobTitle=Admin t2_MonthYearofTitle1=JUL2013 flag=No-Match
t1_employeeID=TomJones t2_employeeID=  t2_JobTitle=  t2_MonthYearofTitle1=. flag=No-Match

更新:

左結合:テーブル1からレコードのみを取得するには

proc sql;
create table want as
select
t1.employeeID as Employee1    , t2.employeeID as Employee2, 
coalescec(t2.JobTitle1,t1.JobTitle2,t1.JobTitle1) as Title,
coalesce(t2.MonthYearofTitle1,t1.MonthYearofTitle2,t1.MonthYearofTitle1) as Date format monyy7.,
case when 
((t1.JobTitle1=t2.JobTitle1 and t1.MonthYearofTitle1=t2.MonthYearofTitle1) or (t1.JobTitle2=t2.JobTitle1 and t1.MonthYearofTitle2=t2.MonthYearofTitle1)) then "Match"
else "No-Match" end as Flag
from table1 as t1 left join table2 as t2
on  (t1.JobTitle1=t2.JobTitle1 and t1.MonthYearofTitle1=t2.MonthYearofTitle1) or (t1.JobTitle2=t2.JobTitle1 and t1.MonthYearofTitle2=t2.MonthYearofTitle1) 
;
quit;

左結合

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テキスト「X」と一致するセルを見つけてから、VBAExcelで最新の日付を探します

分類Dev

リストの複数のリストから一致する値とその頻度を見つける

分類Dev

いくつかのセットから1つの一致するセットを見つけます

分類Dev

特定のサイズと変更時間に一致するファイルを見つけますか?

分類Dev

ループ中に変数に格納されている多くのユーザー名の完全一致を見つける

分類Dev

列に一致するCSVで見つかったディレクトリ内のファイルの名前を変更してから、名前と日付を含むヘッダー行を挿入します

分類Dev

特定のパターンに一致し、そのファイル名をシェルスクリプトの変数の値として指定するファイルを見つけますか?

分類Dev

賞味期限が現在の日付と一致するアイテムを選択し、それらの違いを見つける方法

分類Dev

オブジェクトのベクトルを反復処理し、テキストファイルから取得した変数と一致する変数を見つけます

分類Dev

日付変数から次の日付と前の日付を見つける方法

分類Dev

特定のパスとリストから一致しないすべてのファイルを見つけるのに問題がある

分類Dev

UNIXの2つのファイルから一致するレコードを見つける方法

分類Dev

2枚のシートから一致するアイテムの数量の違いを見つける

分類Dev

要素名が一致するリスト内のdata.frameから値をすばやく見つける

分類Dev

日付が日付範囲postgresと比較される2つのテーブルから一致するデータを取得する

分類Dev

発効日との一致率を見つけるSQL

分類Dev

別のデータフレームからの多くの行を条件として、データフレーム内の行に一致するものを見つける方法

分類Dev

リストから一致を見つけるためのrループ/関数

分類Dev

2つの行列の日付を一致させ、Matlabで後続のデータを見つけるにはどうすればよいですか?

分類Dev

いくつかの列の最大値を見つけて、一致する列名と一緒に印刷します

分類Dev

Excelシートの値に一致するSQLからデータを見つける方法は?

分類Dev

SASで不均一に一致するデータセットとのパラメーター推定値の違いを見つける

分類Dev

UNIXのディレクトリファイルから一致しないリストを見つける

分類Dev

git履歴とパターン一致を解析し、一致が見つかったら、近くの値を変数にキャプチャします

分類Dev

Googleスプレッドシートのさまざまな列にあるさまざまな文から、一致する単語をできるだけ多く見つけることはできますか?

分類Dev

複数のフォルダの変更日を、最近変更されたファイルの日付と一致するように変更します

分類Dev

タイプスクリプトで今日の日付から来る土曜日と日曜日の日付を見つける方法は?

分類Dev

コマンドラインから別のパターンに一致するディレクトリ内でパターンに一致するファイルを「見つける」にはどうすればよいですか?

分類Dev

2つのファイルの特定の列から一致を見つける

Related 関連記事

  1. 1

    テキスト「X」と一致するセルを見つけてから、VBAExcelで最新の日付を探します

  2. 2

    リストの複数のリストから一致する値とその頻度を見つける

  3. 3

    いくつかのセットから1つの一致するセットを見つけます

  4. 4

    特定のサイズと変更時間に一致するファイルを見つけますか?

  5. 5

    ループ中に変数に格納されている多くのユーザー名の完全一致を見つける

  6. 6

    列に一致するCSVで見つかったディレクトリ内のファイルの名前を変更してから、名前と日付を含むヘッダー行を挿入します

  7. 7

    特定のパターンに一致し、そのファイル名をシェルスクリプトの変数の値として指定するファイルを見つけますか?

  8. 8

    賞味期限が現在の日付と一致するアイテムを選択し、それらの違いを見つける方法

  9. 9

    オブジェクトのベクトルを反復処理し、テキストファイルから取得した変数と一致する変数を見つけます

  10. 10

    日付変数から次の日付と前の日付を見つける方法

  11. 11

    特定のパスとリストから一致しないすべてのファイルを見つけるのに問題がある

  12. 12

    UNIXの2つのファイルから一致するレコードを見つける方法

  13. 13

    2枚のシートから一致するアイテムの数量の違いを見つける

  14. 14

    要素名が一致するリスト内のdata.frameから値をすばやく見つける

  15. 15

    日付が日付範囲postgresと比較される2つのテーブルから一致するデータを取得する

  16. 16

    発効日との一致率を見つけるSQL

  17. 17

    別のデータフレームからの多くの行を条件として、データフレーム内の行に一致するものを見つける方法

  18. 18

    リストから一致を見つけるためのrループ/関数

  19. 19

    2つの行列の日付を一致させ、Matlabで後続のデータを見つけるにはどうすればよいですか?

  20. 20

    いくつかの列の最大値を見つけて、一致する列名と一緒に印刷します

  21. 21

    Excelシートの値に一致するSQLからデータを見つける方法は?

  22. 22

    SASで不均一に一致するデータセットとのパラメーター推定値の違いを見つける

  23. 23

    UNIXのディレクトリファイルから一致しないリストを見つける

  24. 24

    git履歴とパターン一致を解析し、一致が見つかったら、近くの値を変数にキャプチャします

  25. 25

    Googleスプレッドシートのさまざまな列にあるさまざまな文から、一致する単語をできるだけ多く見つけることはできますか?

  26. 26

    複数のフォルダの変更日を、最近変更されたファイルの日付と一致するように変更します

  27. 27

    タイプスクリプトで今日の日付から来る土曜日と日曜日の日付を見つける方法は?

  28. 28

    コマンドラインから別のパターンに一致するディレクトリ内でパターンに一致するファイルを「見つける」にはどうすればよいですか?

  29. 29

    2つのファイルの特定の列から一致を見つける

ホットタグ

アーカイブ