0
下面的代碼引用兩個表。每個表的結構都是相同的,唯一不同的是「PRICE」和「PRICE_DATE」值。這是因爲它與一年前創建的表格相同。我想要做的就是創建一個新表格,它爲每個基金獲取每張表格的最新價格,並將其插入新表格。除此之外,我還想要另一欄來計算增長。下面的代碼適用於此目的。訪問查詢將兩個表與標準組合在一起
SELECT [2015_11_Fund_Prices].FUND_CODE, [2015_11_Fund_Prices].PRICE AS
[[email protected]_112015], [2016_11_Fund_Prices].PRICE AS [[email protected]_112016]
([2016_11_Fund_Prices].[PRICE]/[2015_11_Fund_Prices].[PRICE]-1) AS Growth INTO 2016_11_Monthly_Fund_Prices
FROM 2016_11_Fund_Prices INNER JOIN 2015_11_Fund_Prices ON [2016_11_Fund_Prices].FUND_CODE = [2015_11_Fund_Prices].FUND_CODE
GROUP BY [2015_11_Fund_Prices].FUND_CODE, [2015_11_Fund_Prices].PRICE_DATE, [2015_11_Fund_Prices].PRICE, [2016_11_Fund_Prices].PRICE, [2016_11_Fund_Prices].PRICE_DATE, ([2016_11_Fund_Prices].[PRICE]/[2015_11_Fund_Prices].[PRICE]-1)
HAVING ((([2015_11_Fund_Prices].PRICE_DATE)=#24/11/2015#) AND (([2016_11_Fund_Prices].PRICE_DATE)=#24/11/2016#));
然而,這個代碼假定最新的價格是兩個表中的24/11。我想用max函數替換它,這將導致查詢僅引用具有最高日期值的行中的價格。
任何人都可以幫忙嗎?使用 Tabels是
+-----------+------------+-------+
| Fund_Code | PRICE_DATE | PRICE |
+-----------+------------+-------+
| 1 | 12/12/12 | 1 |
| 1 | 13/12/12 | 1.2 |
| 1 | 14/12/12 | 1.1 |
| 2 | 12/12/12 | 1.12 |
| 2 | 13/12/12 | 1.13 |
| 2 | 14/12/12 | 1.11 |
所以第二個表是完全一樣的,但是對應於次年日期。 所有我想要的是一個表:
Fund_Code Price1 Price2 Growth
感謝
所以你建議有兩個查詢來產生結果?我認爲這是可能的一個。 – naiminp
另外,爲什麼當我在上面的代碼中添加「SELECT PRICE」時,結果會再次返回所有日期,而不僅僅是最大值? – naiminp
您可以將其作爲子查詢添加到您現有的查詢中,但如果您將它作爲單獨的查詢使用,則排除故障時會更簡單。只需添加SELECT PRICE應該會給您一個錯誤,因爲您既沒有按PRICE進行彙總也沒有進行分組。如果您將PRICE添加到分組,那麼您將獲得所有日期,因爲您現在正按每個單一價格進行分組,而不是僅分配每個FUND_CODE;這就是爲什麼你必須將它作爲一個單獨的子查詢來使用,並且不能試圖通過將PRICE添加到它來快捷方式。 – SunKnight0