两组数据不匹配的最优视图设计

时间:2016-03-28 23:24:48

标签: sql-server sql-server-2008 crystal-reports

一些背景......我的公司使用一种软件来存储独立领域的抵押贷款信息。这些字段在贷款数据库中的许多表中被分解。

我目前的困境围绕着设计一个视图,这个视图将允许我从我们软件的承保方和我们软件的锁定方面找到一部分贷款的不匹配数据。

以下是从已存在的两个视图返回的数据的快速示例:

UW View

transID | DTIField | LTVField | MIField  
50000   | 37.5     | 85.0     | 1  

锁定视图

transID | DTIField | LTVField | MIField  
50000   | 42.0     | 85.0     | 0

在上述情况下,视图应返回不匹配的字段(在本例中为DTIField和MIField)。我已经构建了一个比较视图,该视图使用一系列CASE语句返回0表示不匹配或1表示已匹配:

transID | DTIField | LTVField | MIField  
50000   | 0        | 1        | 0

这本身很好,但它在报告方面向下游创建了一些问题。我们希望能够构建一个报告,该报告仅显示那些具有不匹配数据的transID并显示哪些列不匹配。 Crystal Reports是有问题的报告解决方案。

有关数据集的一些细节......我们有27项贷款项目正在进行比较(因此总计54个字段)。系统中有超过4000笔贷款并且还在增长。 transID字段中已有索引。

如何构建视图以返回报告所需的所有数据?我们可以在Crystal Reports中完成大量工作,但理想情况下,大部分逻辑都将在MSSQL中处理。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为在比较给定行的27列时应该没有问题。由于您只需阅读一次该行并比较两个表中该行的列,因此它不应构成任何性能问题。您可以使用一些hash函数HASHBYTES将哈希值分配给这两个表中这27个字段的组合,然后使用此字段来比较视图应返回的行。这应该会带来一些性能提升。测试将揭示更多。