質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

3回答

395閲覧

SAS 1つのレコードをキーにして、キーにしたレコードに当てはまる別のレコードも一緒に抽出する方法

mmi___co

総合スコア10

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

1クリップ

投稿2018/12/06 08:44

閲覧ありがとうございます。
当方まっっったくプログラムについての知識がなく、教えられるがままにSASを扱っています。

SASレコードの結合の仕方を教えてください。

例〉いろんな人のデータ
A 名前 体重 身長 趣味
B 名前 今日の朝行ったこと 、今日食べたもの

というように、内容で結合できそうなところは名前だけ、というレコードがあります。

ここで行いたいことは、
名前をキーにして、例えば山田太郎さんの、その他のデータを全て照合し、名前のところに山田太郎さんと書いてあり、合致したら結合させて出力させたいのです。
似たようなことを行なっているプログラムを元にいろいろ試してみたのですが、
クエリで左外部結合しても、Aのレコードしか抽出せず、Bのレコードについては、項目こそラベルで指定しているので出ているものの、レコードをまったく抽出していません。

試したこと

左外部結合でそもそもやることじゃないのかもしれないと思い、いろいろ試してみましたが、お手上げ状態です。
どなたか打開策を教えていただけると大変助かります。

よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SAS BASEのご質問と思います。teratailには、SASのカテゴリがなくて不便ですね。

A、Bの2つのテーブルについて、by変数をキーにしてマージという操作を行います。

マージする際には、先んじてby変数をキーにして各テーブルがソートされている必要があります。

以下、サンプルコードです。

SAS

1 2proc sort data=A; by name; run; 3 4proc sort data=B; by name; run; 5 6data test; 7 merge A(in=in1) B(in=in2); 8 by name; 9 if in1 = 1 and in2=1 then output; 10run; 11

if in1=1 and in2=1 then output;
とすると、両方のテーブルにnameが存在するレコードのみ抽出されます。

もしAにのみあればよいのなら、(右外部結合)
if in1=1 then output;

もしBにのみあればよいのなら、(左外部結合)
if in2=1 then output;

と書き換えればよいです。

古いご質問なので、もう解決しているでしょうか。。。

投稿2020/01/15 05:07

yi634

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

名前をTrim(A.名前)=Trim(B.名前)のように、トリミングした上で結合してみてはどうでしょうか

投稿2018/12/08 23:46

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

SASって何ですか?スカンジナビア航空しか思い浮かびません。

名前で同姓同名の人がいたらどうしますか?

同じSQLでもデータベースによって方言が大きいですから、どのデータベースを使うのかを質問のタグで明示したり、バージョンも明記した方が適切なコメントが付き易いです。 SQLの観点から Oracle Database, PostgreSQL, MySQL の特徴を整理しよう!

投稿2018/12/06 09:11

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問