1

我在 MSAccess 中有一个名为的查询,ClaimQry它提示用户输入参数,valuationDate. 我想以ClaimQry某个评估日期运行,例如 2011 年 1 月 1 日,然后以另一个评估日期 2012 年 1 月 1 日运行相同的查询,并基于字段连接两个结果集claimNumber

我试过了

SELECT ClaimQuery.Total, ClaimQuery_1.Total
FROM ClaimQuery 
INNER JOIN ClaimQuery AS ClaimQuery_1 ON ClaimQuery.[Claim #] = ClaimQuery_1.[Claim #];

但我只被提示输入一个估值日期而不是两个(因此我的结果数据不正确)。

编辑:开始认为我的问题可能不清楚,所以我会尝试举一个例子。

假设我在 2011 年 1 月 1 日运行ClaimQuery并为其提供valuationDate参数。我可能会得到一个结果集

Claim# Total
123    100
231    200
132    300

然后我运行ClaimQuery并在 2012 年 1 月 1 日为valuationDate参数输入它,我得到了

Claim# Total
123    400
231    500
132    100
213    600

现在,我想对这两组进行连接,并得到类似的东西

Claim# Total1 Total2
123    100    400
231    200    500
132    300    100
4

2 回答 2

0

我不相信 Access 将允许您构建一个使用两次参数查询的查询,并让数据库引擎识别相同参数名称的两个单独实例。

我怀疑你能得到的最接近的是将查询添加为一个数据源,并添加一个使用第一个查询的 SQL 但其参数名称不同的子查询。

所以如果ClaimQry看起来像这样......

PARAMETERS date1 DateTime;
SELECT [Total], [Claim #]
FROM YourTable
WHERE date_field = [date1];

这个查询应该工作......

PARAMETERS date2 DateTime;
SELECT ClaimQuery.Total, ClaimQuery_1.Total
FROM
    ClaimQuery 
    INNER JOIN
        (
            SELECT [Total], [Claim #]
            FROM YourTable
            WHERE date_field = [date2]
        ) AS ClaimQuery_1
ON ClaimQuery.[Claim #] = ClaimQuery_1.[Claim #];

这可能只是你想要的一半。但我不相信我们能给你剩下的。

于 2013-08-05T21:35:00.100 回答
0

我所做的是保存相同查询的 2 个实例,并在其中一个上设置year(P)-1,所以后者我用 a 调用这两个实例,union all它们共享相同的参数-> 只有 1 个输入 2 个结果

select * from
Query_1 
union all 
select * from
Query_1_1
于 2015-06-12T09:21:08.743 回答