1

MSAccess にClaimQry、ユーザーにパラメーターの入力を促すというクエリがありますvaluationDateClaimQry2011 年 1 月 1 日などの評価日で実行し、別の評価日である 2012 年 1 月 1 日で同じクエリを実行し、フィールドに基づいて 2 つの結果セットを結合しますclaimNumber

私は試した

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

しかし、評価日を 2 つではなく 1 つだけ入力するように求められました (したがって、結果のデータは正しくありませんでした)。

編集:私の質問が明確ではないかもしれないと考え始めたので、例を挙げてみます。

2011 年 1 月 1 日のパラメータを実行ClaimQueryしてフィードするとしvaluationDateます。次のような結果セットが得られる場合があります

Claim# Total
123    100
231    200
132    300

次に、パラメーターClaimQueryに対して 1/1/2012 を実行してフィードすると、valuationDate

Claim# Total
123    400
231    500
132    100
213    600

ここで、これら 2 つのセットに対して結合を実行し、次のような結果を得たいと考えています。

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

2 に答える 2

0

私が行ったことは、同じクエリの2つのインスタンスを保存し、そのうちの1つに設定year(P)-1したので、後者を設定して、両方のインスタンスをaunion allで呼び出し、同じパラメーターを共有します-> 1つの入力2つの結果のみ

select * from
Query_1 
union all 
select * from
Query_1_1
于 2015-06-12T09:21:08.743 に答える
0

Access では、パラメーター クエリを 2 回使用するクエリを作成し、db エンジンに同じパラメーター名の 2 つの個別のインスタンスを認識させることはできないと思います。

最も近いのは、クエリを 1 つのデータ ソースとして追加し、最初のクエリの 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 に答える