問題タブ [proc-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
500 参照

mysql - SAS/PROC-SQL一意のキーを持つテーブルから複数の行を持つテーブルへの変換は同じキーを持ちます

現在、私は以下のようなテーブルを持っています:

配偶者/子供がいないことを意味する1900年1月1日の日付。このテーブルを次のように変換したいと思います。

しかし、この表は、特定の時間(2006年1月1日)および(2011年1月1日)にこの質問に答える最良の方法を提供できませんでした。ユーザー1には何人の子供がいましたか?答えは1と2になります。また、テーブル1からテーブル2に変換するのも難しいので、同じuser_idに対して新しい行を作成する方法に固執しています。この状況を改善する方法、またはテーブルを変換する際の問題を解決する方法について何かアイデアはありますか?ヘルプは本当にありがたいです。前もって感謝します。

0 投票する
1 に答える
13396 参照

sas - SAS data step / proc sqlは、自動インクリメントの主キーを使用して別のテーブルから行を挿入します

私は以下のように2つのデータセットを持っています

別のデータセット

2番目のテーブルから1番目のテーブルにすべての行を挿入するにはどうすればよいですか?状況は、最初のテーブルが永続的であるということです。2番目のテーブルは毎月更新されるので、毎月更新されるテーブルのすべての行を永続テーブルに追加して、次のようにします。

私が直面している問題は、データセット1からIDをインクリメントできないことです。検索した限り、SASのデータセットには自動インクリメントプロパティがありません。自動インクリメントはデータステップを使用して実行できますが、このような2つのテーブルの場合にデータステップを使用できるかどうかはわかりません。通常のSQLは

しかし、sasデータセットは自動インクリメント列をサポートしていないため、私が直面している問題があります。上記のprocsqlの後に以下のSASデータステップを使用して解決できます

これによりid列の値が増加しますが、コードはやや醜く、idは主キーであり、他のテーブルで外部キーとして使用されているため、古い行のIDを台無しにしたくありません。 。

私はSASの学習と作業の両方の過程にあるので、助けていただければ幸いです。前もって感謝します。

追加の質問:2番目のテーブルに新しい列がない場合、データステップを使用して必要なもの(月次テーブル(2番目)から永続テーブル(1番目)に新しい行を追加)を完了する方法はありますか?現在、この醜いproc sql/dataステップを使用して新しい列を作成しています

0 投票する
2 に答える
2170 参照

sas - proc sqlのwhere句内でループするcaseステートメントを使用しようとしています

SAS EG で複数のプロンプト値のストアド プロセス コードを作成しようとしています。

しかし、次のエラーがスローされます...私が間違いを犯している場所、または他の方法がありますか???

0 投票する
1 に答える
2161 参照

merge - SAS データ ステップ 2 つのデータセットをマージ/変更しますが、マスター データセットの整合性定数 (pk) は保持します

私は以下のようなコードを持っています

トランザクション データセットをマスター データセットにマージし、マスターからの値をトランザクション データセットからの値で更新したいと考えています。これを達成するには、以下のコードを使用できます

結果は次のようになります

ただし、マスター データセットがリセットされ、マスター データセットの id 列の主キー制約が失われました。

私の知る限り、マージ、設定、および更新コマンドは、現在のデータセットを更新するのではなく、新しいデータセットを作成します。

変更ステートメントは現在のデータセットを更新する唯一のステートメントですが、上記のコードのマージ ステートメントを変更に置き換えても機能しません。

マージ後にマスター データセットの主な制約を元に戻すことでこの問題を解決できますが、これは良い解決策ではありません。

これ以外に方法はありますか?助けていただければ幸いです。事前に感謝します。

0 投票する
3 に答える
2931 参照

sas - 2列を1列に変換するSAS proc sql

テーブルがあるとします

そしてテーブルを作りたい

SAS を使用しproc sqlます。どうやってやるの?

0 投票する
5 に答える
13389 参照

sql - SAS datastep/SQL は、同じ ID を持つ複数のレコードから最新のレコードを選択します

たとえば、次のようなデータセットがあります。

datastep または sql で、id = 1 で最新の日付が 2002/01/01 のレコードを取得するにはどうすればよいですか? 助けていただければ幸いです。事前に感謝します。

0 投票する
2 に答える
2892 参照

sql - SAS - ID は同じだがステータスが異なる複数のレコードから選択する

1つの質問で必要なものを表現する方法がわからないため、誤解を招く(ある場合)質問のタイトルで申し訳ありません。

以下のようなデータセットがあります。

たとえば、上記のデータセットを使用すると、ステータスが完了していないユーザーを選択したい場合、得られる結果は次のようになります。

SASデータステップまたはPROC SQLで上記の結果を取得する方法はありますか? 助けていただければ幸いです。事前に感謝します。

0 投票する
3 に答える
138 参照

merge - 変数名の別のリストで指定された変数のみを保持する

45 個の変数のリストを含む 1 つの列を持つデータセットがあります。これは「出力」と呼ばれます。別のデータセットには、200 個の変数に関する時系列データがあります。最初の行の上部にある変数の名前と、時間全体の値が列にあります。したがって、たとえば、変数の名前の一番上に失業があり、その下にある時間全体の失業の値があります。GDP などについても同様です。このデータセットは「すべて」と呼ばれます。

私は、データセットから 45 個の変数を「out」と呼び、「すべて」から 45 個の変数のみを含む小さなテーブルを作成するのが好きです。

を使用proc sql; create table TABLEしましたが、コードを完成させる方法がわかりません。私の考えは、リストを定義し、そのリストをproc sqlに取り込んで小さなテーブルを作成することでしたが、それを機能させることができませんでした。

誰かがこれを手伝ってくれれば幸いです。ありがとう、SE