私は現在、私のstockportfolioを追跡するためのアクセスを使用しています。それは約20のテーブルを含んでいます。私は、エクセルにエクスポートする最も重要なデータを含めるためにクエリを使用します。 2つのデータテーブルには、同一であるが異なる値を持つ2つの名前が含まれています。これにより、Mkt_Value、Contr、およびVol(コードで示される)の合計が二重評価を受けるようになります。合計クエリから2倍の値
私は、それがサブセレクトと左の結合以外のものを使用しなければならないのを中心にしていると思います。問題は、ほとんどの場合、このクエリにクエリウィザードを使用しているため、問題にどのように対処するかがわかりません。どんな指導も大歓迎です!
tbl_datum(日付表)、tbl_positions、tbl_ARMSpositions、およびtbl_ARMSgreeksの4つの表を含むコードの抜粋を掲載しました。
ありがとうございます!
SELECT
tbl_Positions.ARMSNAME,
tbl_Positions.Uploaddate,
Sum(tbl_ARMSpositions.Mkt_Value),
Sum(tbl_ARMSpositions.Contr),
Sum(tbl_ARMSgreeks.Vol)
FROM
((tbl_Datum INNER JOIN tbl_Positions ON tbl_Datum.Datum = tbl_Positions.UploadDate)
LEFT JOIN
tbl_ARMSpositions ON (tbl_Positions.Uploaddate = tbl_ARMSpositions.Value_Date) AND (tbl_Positions.ARMSNAME = tbl_ARMSpositions.Name))
LEFT JOIN
tbl_ARMSgreeks ON (tbl_Positions.Uploaddate = tbl_ARMSgreeks.Value_Date) AND (tbl_Positions.ARMSNAME = tbl_ARMSgreeks.Name)
GROUP BY
tbl_Positions.ARMSNAME,
tbl_Positions.Uploaddate;
デカルト積があるか、DBに重複データがあり、デカルト積のように見えます。私は、あなたのデータを見ることなく、伝えることはできません。 「Value_Date」または「Uploaddate」の重複を探して自分のデータを確認できます。それ以外の場合は、クエリを変更して合計とグループを削除してテストします。次に、データを見て、重複した行があるかどうかを確認します。複製(またはデカルト製品)を分離したら、それを排除する方法を教えてください。 – tgolisch
はい/ sumでグループを削除すると、2つの行が表示されます。 tbl_ARMSpositionsには、同じ名前と異なるmkt_valuesを持つ項目がいくつかあります。私が考えている問題は、これらの名前がtbl_ARMSgreeksにも現れていることです(フィールドmkt_valueはありません)。手動で行を削除することはできません。なぜなら、他のデータを保持しておく必要があるからです。それらの行を合計したいので、1行の名前を変更できません。 問題は、私が合計の代わりにカウントを使用すると、重複する行に対して2の代わりに4つの項目として表示されることです。 – HejHej
データベースから行を手動で削除する必要はありません。 'DISTINCT'を使って' tbl_ARMSpositions'で重複をロールアップすることができます。 – tgolisch