我想在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