0

私はかなり単純なクエリと格闘しています。しかし、Access と SQL の能力が低いため、現在のプロジェクトで障害にぶつかりました。詳細は以下のとおりです。ご理解とご協力をお願いいたします。

基本的に、私は過去の財務データを使用して、よく知られている倒産予測モデルをテストしようとしています。財務データは年次形式で保存されます (以下の表を参照)。データベースは、企業レコードテーブル(IDX_FS)に各企業の一般情報レコードが 1 つ、財務諸表データテーブル(DATA_BSなど)に存在する年度ごとに複数のレコードを持つように構成されています。

[4DTYR]各 DATA テーブルには、各企業のデータ レコードの特定の年とそれぞれの財務データを含む 1 つのフィールドがあります。このフィールドのデータは、企業ごとに存在し、存在する年ごとに繰り返されます。

例えば:

[CONAME] [4DTYR] [A_TOTAL]

Apple Inc. 2009 200
Apple Inc. 2010 220
Apple Inc. 2011 240
Google Inc. 2009 180
Google Inc. 2010 170
Google Inc. 2011 160

私が直面している問題は、フィールド内のデータが[4DTYR]存在し、データが少数の式で算術計算に使用されているさまざまなテーブルで繰り返されることです。 )クエリ出力のデータ。

SQL スクリプトに加えて、以下のテーブル、フィールド、および式について詳しく説明しました。WHERE異なるテーブルのすべての[4DTYR]日付を同じに設定しようとする条件を追加しようとしたことに注意してください。その部分はマゼンタで強調表示されます。20年間のデータがある場合、1年間しか出力されないため、これはまだ機能していないようです。さらに、式を使用せずにクエリを実行すると、既存のパラメーターによって最大 500 レコードの出力が得られます。

ご回答ありがとうございます。そこで、Gords のアドバイスを受けて、以下の修正を行いました。ただし、JOIN 構文エラーが発生します。IDX_FS には CUSIP フィールドが含まれていますが、4DTYR フィールドは含まれていないことに注意してください。したがって、AND を使用して元のステートメントに追加しました。提案?どうもありがとう。

FROM (((IDX_FS LEFT JOIN DATA_BS ON IDX_FS.CUSIP = DATA_BS.CUSIP) LEFT JOIN DATA_Footnotes ON IDX_FS.CUSIP = DATA_Footnotes.CUSIP) LEFT JOIN DATA_IS ON IDX_FS.CUSIP = DATA_IS.CUSIP) LEFT JOIN DATA_SP ON IDX_FS.CUSIP = DATA_SP.CUSIP AND (((DATA_BS LEFT JOIN DATA_IS ON DATA_BS.CUSIP = DATA_IS.CUSIP AND DATA_BS.4DTYR = DATA_IS.4DTYR) LEFT JOIN DATA_SP ON DATA_BS.CUSIP = DATA_SP.CUSIP AND DATA_BS.4DTYR = DATA_SP.4DTYR) LEFT JOIN DATA_Footnotes.4DTYR ON DATA_BS.CUSIP = DATA_Footnotes.CUSIP AND DATA_BS.4DTYR = DATA_Footnotes.4DTYR
4

2 に答える 2

1

重複した値を削除する引数distinctを使用してみてください。

于 2013-10-19T19:22:38.850 に答える