2016-01-22 20 views
-1

我有四個相同的表,我試圖通過查詢。我遇到的一個問題是參數。我有一個查詢結合四個表一起工作完美,直到我添加一個參數。該參數更改其中一列中的數據。訪問參數輸入更改實際數據

PARAMETERS [Year] Text (255); 
SELECT main.Geography, main.Year 
FROM ((((select Geography, Year from [Geo union CA] 
UNION SELECT Geography, Year FROM [Geo union CC] 
UNION SELECT Geography, Year FROM [Geo union PA] 
UNION SELECT Geography, Year FROM [Geo union PC]) AS main 
LEFT JOIN [Geo union CA] ON (main.Year = [Geo union CA].Year) AND (main.Geography = [Geo union CA].Geography)) 
LEFT JOIN [Geo union CC] ON (main.Year = [Geo union CC].Year) AND (main.Geography = [Geo union CC].Geography))  
LEFT JOIN [Geo union PA] ON (main.Year = [Geo union PA].Year) AND (main.Geography = [Geo union PA].Geography)) 
LEFT JOIN [Geo union PC] ON (main.Year = [Geo union PC].Year) AND (main.Geography = [Geo union PC].Geography) 
WHERE (((main.Year)=[Year])) 
GROUP BY main.Geography, main.Year 
ORDER BY main.Geography; 

所以我想要地理和地理相關的年份(財務報表)。如果沒有「(((main.Year)= [年])」),我會得到地理和相關年份的正確信息。有了它和參數,地域出來了,但隨着年數的增加,我將其放入參數中。

對於一些額外的上下文,[Geo union XX]是一個簡單的查詢來從初始數據表中提取地理位置和年份。這似乎顯着加快了查詢時間。

+0

在這些情況下,'Year'應該是什麼? ...'SELECT Geography,Year'是表中字段的名稱,'Year()'函數還是'Year'參數? – HansUp

+0

如果將參數的名稱從'Year'更改爲'pYear',然後將字段名稱括起來會發生什麼? 'SELECT Geography,[Year]' – HansUp

+0

修正了它,謝謝!我想我應該實際上閱讀一個參數的工作方式。認爲它需要與字段名稱相同,但顯然在查詢中使用它沒有意義 – daniel

回答

1

這個問題從我使用「年」的兩個字段名稱和參數名稱朵朵。將參數名稱更改爲pYear可解決問題。