私は、同じ通貨価値と取引日を持ちますが、若干異なる方法で請求書照会の入力があった可能性のある重複したエントリを取り出せるようにSQLを書こうとしています。Agressoで重複した請求書を検索するSQL
"GROUP"と "HAVING"を使用してSQLの例を調べましたが、私は間違っています。私のSQLは数年間休眠しています。
これは私が書いたものです。
SELECT amount, apar_id, trans_date
FROM agltransact
WHERE client='AA' AND period=201704 AND apar_id<>0
GROUP BY amount, apar_id, trans_date
HAVING COUNT(*) >1
ORDER BY apar_id,amount
私は、これは同じ取引日(TRANS_DATE)と同じサプライヤーID(apar_id)との重複量(額)を返すだろうと期待していたが、それは実際に私は理解していないデータを返します。これは、さまざまな供給元、取引日および金額を含むはるかに長いリストの最初にリストされたSupplier IDからの出力です。
Amount Supp ID Tr Date
-4149 10303 30/06/2016
-3459 10303 30/06/2016
115.3 10303 30/06/2016
138.3 10303 30/06/2016
3343.7 10303 30/06/2016
4010.7 10303 30/06/2016
誰もが親切にも同じトランザクションの日付とサプライヤーIDの下で重複量をしてください取得するために、正しい方向に私を指すようになりますか?
期待した結果の種類を説明できますか? –
申し訳ありません。私は、同じ取引日とサプライヤ番号の下で同じ価値を持つ金額を表示したいと考えていました。たとえば、経費が複数回入力されているため、取引日とサプライヤは常に同じです。ただし、「請求書番号」は「Fred Exps July 16」または「Fred Expenses 07-16」であり、したがって一意の請求書参照番号を持つことができます。同じサプライヤーと取引日の下で重複した値を見つけることによって、重複する転記があるかどうかを調べるためにこれらを調べることができました。返信いただきありがとうございます。 –
どのDBMSを使用していますか? –