問題タブ [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 に答える
1086 参照

sas - AccessデータベースへのODBC接続でproc sqlでマクロを使用する

fileName というマクロ変数があります。ODBC経由でAccessデータベースに接続するproc sqlで使用しようとしました。ただし、コードにエラーがあるか、マクロ変数を認識していません。

これが私のコードです:

これは 0 行を返します。クエリでマクロ変数を実際の値に置き換えると、正しいデータを含む 1 行が返されます。

&fileName を二重引用符で囲むと、次のエラーが表示されます: エラー: CLI 記述エラー: [Microsoft][ODBC Microsoft Access Driver] '' は有効な名前ではありません。無効な文字や句読点が含まれていないこと、および長すぎないことを確認してください。

マクロ変数をクエリに渡す方法を教えてください。ありがとう。

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

loops - SAS PROC SQL INSERT ステートメントを使用してテーブルにデータを入力し、ループを実行します

これは疫学プロジェクト用です。私は、1961 年から 2013 年までのさまざまな集団における疾患頻度率を計算したいと考えていました。すべての年齢の男性、50 歳以上の男性、および女性の同じ 2 つのケースです。

最初に、'pop_compl' という人口テーブルをインポートしました。このテーブルには、前述の期間における男性 (性別 = 1) と女性 (性別 = 0、違反なし) のさまざまな年齢クラスの人口数が含まれています。

次に、PROC SQL を使用して SAS に空のテーブルを作成しました。

ここで、上記の各テーブルの最初の 2 つの列、年と人口 (および後で 3 番目の「ケース」) に値を入力して、後でテーブル内で必要な率を計算できるようにしたいと考えました。年列には 1961 年から 2013 年の値が入力され、人口列には 1961 年から 2013 年までの各年の「pop_compl」からの人口数が入力されます。

マクロと do ループ内で挿入ステートメントを使用して、それを実行したかったのです。次のようになります。

これは論理的には正しいように見えますが、SAS は値ステートメント内でクエリを使用することについて不平を言っています - 抜粋:

いくつかのことを試したり、変数の型を変更したりしました。何も役に立ちませんでした。これは SAS SQL の制限だと思います。SAS 9.2 32ビットを使用しています。現時点では、これを修正する方法がわかりません。また、同じことを行う別の簡単な方法も思いつきませんでした。

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

sql - グループごとにまとめて複合キーにする

次のような詳細な表があります。

ここで、3 つの列 (COMPANY DATE GROUP) に基づいて複合一意キーを作成し、次のような出力を得たいと考えています。

次のようなクエリ(SQL)を使用しました:COMPANY、DATE、GROUPによるテーブルグループからDISTINCT COMPANY、DATE、GROUP、sum(AMT)を選択してテーブルTEMPを作成します

注: 3 つの列 (COMPANY DATE GROUP) に基づく複合キーを持つテーブルを作成して、他のテーブルと結合できるようにする必要があります。必要な結果が得られにくくなります。

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

sas - SAS Proc SQL トリムが機能しない?

私は非常に単純に見える問題を抱えています (おそらく...) が、それを機能させることができません。

データセット 'list' 内の変数 'name' の長さは 20 です。マクロ変数に値を条件付きで選択したいのですが、目的の値が割り当てられた長さよりも小さいことがよくあります。これにより、マクロ変数の将来の呼び出しが中断されるため、末尾の空白が最後に残ります。

トリム、圧縮、btrim、left(trim、およびその他のソリューションを試しましたが、私が望むものは何も得られないようです (空白のない「ジョー」です)。これは、実際よりも簡単なはずのようです... .. ヘルプ。

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

sas - Proc SQLの `where ... in (...)`句の最大数または引数?

テーブルをサブセット化し、それを に要約しているとしproc sqlます。このコードでは、where ... in句とサブクエリを使用してサブセット化を行います。where ... inSQL エンジンの中には、句の引数の数に制限を設定するものがあることを知っています。SASにはこれに制限がありますか? この質問は、次のようなプログラムに適用されます。

longlist10,000 個の ID を返すとどうなるでしょうか? 1000万でどう?

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

sas - %put と cats を使用して、SAS MACRO コードで SQL ステートメントを作成する

SAS マクロ コードで生成した 10 個のクエリの結果を追加するマクロを作成したいと考えています。

複数のエラーが発生します。最初のものは -A character operand was found in the %EVAL function or %IF condition where a numeric operand is required.

説明して訂正してください。

参考までに、私は SAS プログラミングの初心者です。SAS ENTERPRISE GUIDE を使用しています