2016-01-22 34 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可解决问题。