我想在SQL服務器2005上創建一個查詢,它將檢查某些詳細記錄中某些字段的總和是否等於標題記錄中的總字段。這將用於爲我工作的公司創建電子支票存款。SQL Server 2005求和查詢
層次結構如下所示: 存款 - >批次 - >檢查
創建電子存款的文件之前,複製可能沒有完全完成每個表,所以我需要檢查,以確保每個記錄在創建文件之前都在那裏。基本上,我想從我的Deposits表中選擇一個位置和ID列表,其中正確的批次數量和正確的檢查次數確實存在於它們各自的表格中。
這是我想要的邏輯。
select location, d.id from closing_balance..cb_deposits as d
left outer join closing_balance..cb_checkbatchhf as b on d.id = b.deposit_id and d.location = b.loc
left outer join closing_balance..cb_checkdf as c on b.id = c.batch_id and b.loc = c.loc
where sum(c.check_amt) = b.scanned_subtotal and sum(b.scanned_subtotal) = d.amount and sum(b.num_checks_scanned) = d.count
上述不起作用,因爲你不能在where子句中的聚合函數總和。我可以用編程方式輕鬆完成這個任務,但是如果在SQL語句中有一個聰明的方法可以快速完成此操作,那最好。
任何幫助是極大的讚賞。
謝謝!
記住:WHERE - 從任何考慮因素中刪除行,GROUP BY對其餘行進行分組,並且HAVING刪除組 – 2009-07-08 15:22:34