0
2つのテーブルがあります(マスタ - 詳細関係)。マスタテーブルには、同じマスタレコードの詳細レコード数を記録する列(合計)があります。この列はパフォーマンス上の理由によるものです)。ここでは、テーブルの仕様は以下のとおりです。総計が正確でないこれらのマスタレコードの検索方法
table: MySum
column: id
column: total (total of MyDetail records for the same MySum record)
table: MyDetail
column: name
column: MySum
詳細レコードの削除は、マスター表の合計が正確でない場合があり、私はその合計正確ではありませんこれらのマスタレコードを検索したいと思いますので。ここに私が持っているSQLがあります。しかし、それはゼロレコードを生成し、私はこれが実際のデータに基づいて正しくないことを知っています。
select s.id, s.total from MySum s where s.total <> (select count(*) from MyDetail d where s.id = d.MySum group by d.MySum)
正しいSQL文は何ですか?
私はMS SQL Serverを使用しており、データベース固有のステートメントは大丈夫です。しかし、一般的なステートメントは良いでしょう。
ありがとうございます!
それは、カウント(なければなりません* )。 OPのテーブルデザインは次の通りです:_(同じMySumレコードのMyDetailレコードの合計)_ – cha
あなたのご意見ありがとうございました。あなたのコードをテストしたところ、正しい結果が得られませんでした。 – curious1
ゴードン、私はそれを働かせた。ここに最終的な声明があります。 sum(d.mysum)ではなくcount(d.mysum)を使用します。私はそれを選択できるようにあなたの答えを更新していただけますか?さらに、私は文でcount(d.mysum)も返すことができますか? – curious1