我用一個相當簡單的查詢來爭論。但是,鑑於我的Access和SQL能力水平低下,我在當前的項目中遇到了障礙。詳情如下,並提前感謝您的耐心等待。SQL查詢在結果中產生不需要的重複行
基本上,我試圖用歷史財務數據來測試一個衆所周知的破產預測模型。財務數據以年度格式存儲(下表中列出)。數據庫的結構使得每個公司在公司記錄表(IDX_FS
)中具有一個一般信息記錄,並且在財務報表數據表(DATA_BS
等)中存在每個存在年份的多個記錄。
在每個DATA表中,有一個字段包含每個公司[4DTYR]
及其各自財務數據的數據記錄的特定年份。這個領域的數據重複並存在於每個公司以及它存在的每一年。
例如:
[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]
存在字段中的數據,並且重複從該數據被用於在表達式一小撮計算arithmatic的問題,我的查詢輸出中有大量的重複數據(以及看起來是一個置換)的數據。
除了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
清理你的問題,它的非可讀 –