2016-03-28 10 views
0

Ein bisschen Hintergrund ... mein Unternehmen nutzt eine Software, die Informationen über ein Hypothekendarlehen in unabhängigen Bereichen speichert. Diese Felder sind über viele Tabellen in der Kreditdatenbank verteilt.Optimal View Design zu finden Mismatchs zwischen zwei Datensätze

Mein aktuelles Dilemma dreht sich um das Entwerfen einer Ansicht (en), die es mir ermöglicht, nicht übereinstimmende Daten zu einer Untergruppe von Krediten von der Underwriting-Seite unserer Software und der Lock-Seite unserer Software zu finden.

Hier ist ein kurzes Beispiel der aus den beiden Ansichten zurückgegebenen Daten, die bereits existieren:

UW Ansicht

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

Lock-Ansicht

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

In der obigen Situation, die Aussicht sollte die Felder zurückgeben, die nicht übereinstimmen (in diesem Fall das DTIField und das MIField). Ich habe eine Vergleichsansicht gebaut, die eine Reihe von CASE-Anweisungen verwendet zurückzukehren entweder 0 für nicht angepasst oder eine 1 für bereits abgestimmt:

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

Dies ist an sich gut, aber es ist ein bisschen ein Problem zu schaffen Downstream auf der berichtsseite. Wir möchten in der Lage sein, einen Bericht zu erstellen, der nur die transIDs anzeigt, die nicht übereinstimmende Daten enthalten und anzeigen, welche Spalten nicht übereinstimmen. Crystal Reports ist die fragliche Berichtslösung.

Einige Besonderheiten zu den Datensätzen ... wir haben 27 Positionen des Kredits, die wir vergleichen (also insgesamt 54 Felder). Es gibt über 4000 Kredite im System und wächst. Es gibt bereits Indizes für die transID-Felder.

Wie würden Sie die Ansicht so strukturieren, dass alle für den Bericht benötigten Daten zurückgegeben werden? Wir können eine Menge Arbeit in Crystal Reports erledigen, aber idealerweise wird viel von der Logik in MSSQL gehandhabt.

Vielen Dank für Ihre Hilfe.

+0

Ich sehe hier kein Rätsel, außer du sagst, du willst 54 Felder nicht hart codieren. Sie können das gewünschte Ergebnis mit einem einfachen Join erhalten. – FLICKER

Antwort

0

Ich denke, es sollte kein Problem sein, die 27 Spalten für eine bestimmte Zeile zu vergleichen. Da Sie die Zeile nur einmal lesen und die Spalten in dieser Zeile in beiden Tabellen vergleichen, sollte dies keine Leistungsprobleme verursachen. Sie können einige hash Funktionen HASHBYTES verwenden, um der Kombination dieser 27 Felder in beiden Tabellen einen Hash-Wert zuzuweisen und dann dieses Feld zu verwenden, um zu vergleichen, welche Zeilen von der Ansicht zurückgegeben werden sollen. Dies sollte zu einer gewissen Leistungsverbesserung führen. Tests werden mehr verraten.

Verwandte Themen