我有三個MS Access表。它們是Income_Statements
,Balance_Sheets
和Cash_Flow_Statements
。這些表共享相同的主鍵。這是一個三字段主鍵,其中包括Ticker
,[Year]
和Period
。我想結合所有這三個表,而不重複主鍵字段。我有一個需要滿足的日期標準。我需要顯示的記錄與我從名爲dtpDateSelection
的DateTimePicker
中選擇的日期相同或更早。合併表的SQL語法
這是我到目前爲止有:
Dim year As String = dtpDateSelection.Value.Year
Dim quarter As String = ((dtpDateSelection.Value.Month - 1) \ 3) + 1
Dim cmd2 As OleDbCommand = New OleDbCommand("SELECT Ticker, [Year], Period, Income_Statements.Net_Income, Balance_Sheets.Total_Assets, Cash_Flow_Statements.Net_Cash_Flow_Operating FROM Income_Statements, Balance_Sheets, Cash_Flow_Statements WHERE Period < 5 AND Period <= #" & quarter & "# AND [Year] <= #" & year & "#", con)
Dim quarterlyReader As OleDbDataReader = cmd2.ExecuteReader()
Dim Quarterly As New DataTable
Quarterly.Load(quarterlyReader)
DataGridViewScreen.DataSource = Quarterly
quarterlyReader.Close()
我有我的WHERE
聲明麻煩。我該如何做這項工作?
很難告訴你沒有看到你是如何解析的的DateTimePicker正在做什麼。但它看起來好像你可能錯過了JOIN或兩個JOIN。 – Plutonix
我可以這樣做:''選擇*從Income_Statements,Balance_Sheets,Cash_Flow_Statements WHERE期間<5和期間<=#「&季度&#與AND [年] <=#」&年&「#」'與'JOIN'語句的某處? – gromit1
您需要一個'JOIN'(即「組合」)並使用這些主鍵。見Linger的回答 – Plutonix