Sql 访问参数输入更改实际数据

Sql 访问参数输入更改实际数据,sql,ms-access,Sql,Ms Access,我试图查询四个相同的表。我遇到的一个问题是参数。在我添加一个参数之前,我有一个将四个表合并在一起的查询,它可以完美地工作。该参数更改其中一列中的数据 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 S

我试图查询四个相同的表。我遇到的一个问题是参数。在我添加一个参数之前,我有一个将四个表合并在一起的查询,它可以完美地工作。该参数更改其中一列中的数据

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;
所以我想要地理位置和与地理位置相关的年份(财务报表)。如果没有“Where(((main.Year)=[Year]),我就可以获得正确的地理信息和相关年份。有了它和参数,地理位置就出来了,但年份是我在参数中输入的


对于一些其他上下文,[Geo union XX]是一个简单的查询,用于从初始数据表中提取地理位置和年份。这似乎大大加快了查询时间。

Year
是一个保留字(请参阅),因此:

  • 停止使用保留字
  • 尝试使用
    main.[Year]

问题源于我对字段名和参数名都使用了“年”。将参数名称更改为pYear解决了问题。

在这些情况下,
Year
应该是什么
SELECT Geography,Year
是表中字段的名称、
Year()
函数还是您的
Year
参数?如果将参数名称从
Year
更改为
pYear
,然后像这样将字段名称括起来,会发生什么情况<代码>选择地理位置,[年份]修复了它,谢谢!我想我应该读一读参数是如何工作的。认为它需要与字段同名,但显然在查询中使用它没有意义