Anzeigen der Datensätze von der Master - /Master-Detail-Tabelle mithilfe von SQL-Abfrage-nur
Ich habe ein problem, von dem ich bereits gelöst mit T-SQL(cursor & loop).(SQL server 2005)
Aber ich bin auf der Suche nach der Lösung mit SQL.
Ich habe eine Master Tabelle mit einer Spalte sagen MasterRecord(alle sind einzigartig und Typ Varchar und PK)
MasterRecord
------------
MRecord1
MRecord2
MRecord3
MRecord4
................
..................
MRecord[n]
Nun die Master-Detail-Tabelle hat zwei Spalten MasterRecord(Varchar & FK) und DetailRecord(Varchar)
MasterRecord DetailRecord
---------------------------------------------
MRecord1 MRecord1_DetailRecord1
MRecord1 MRecord1_DetailRecord2
MRecord1 MRecord1_DetailRecord3
MRecord1 MRecord1_DetailRecord4
MRecord2 MRecord2_DetailRecord1
MRecord2 MRecord2_DetailRecord2
MRecord2 MRecord2_DetailRecord3
MRecord2 MRecord2_DetailRecord4
...............................................
................................................
MRecord[n] MRecord[n] _DetailRecord1
MRecord[n] MRecord[n] _DetailRecord2
MRecord[n] MRecord[n] _DetailRecord3
MRecord[n] MRecord[n] _DetailRecord4
wobei [n] kann eine beliebige Anzahl
Das problem ist, dass für jede eindeutige Stammsatz, ich sollte Holen die obersten 2 Detaildatensätze
O/P:
MasterRecord DetailRecord
---------------------------------------------
MRecord1 MRecord1_DetailRecord1
MRecord1 MRecord1_DetailRecord2
MRecord2 MRecord2_DetailRecord1
MRecord2 MRecord2_DetailRecord2
MRecord3 MRecord3_DetailRecord1
MRecord3 MRecord3_DetailRecord2
...............................................
..............................................
MRecord[n] MRecord[n] _DetailRecord1
MRecord[n] MRecord[n] _DetailRecord2
Hoffe, dass ich verständlich erklärt mein problem.
Bitte lassen Sie mich wissen, für weitere Klärung.
- wo möchten Sie in einem master-detail-format? welche Sprache/framework? .net/java/vb6? winforms/asp.net/silverlight?
- Es ist SQL-server 2005. Ich möchte die Anzeige im datagrid. Es ist Asp.net -Anwendung. Aber das problem muss gelöst werden, im backend nur. Ich bin nicht handhaben soll, es in der code-behind (als pro-Vorgesetzten-Instruktion).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob Sie wollte einfach nur Sätze mit zwei oder Datensätze mit eins und zwei.
Schauen Sie hier und lassen Sie mich wissen.
Hoffe, das hilft
Versuchen Sie dies:
Edit: korrigiert Rechtschreib-Tippfehler
Edit: korrigiert, wirklich dumme Fehler
Ich habe keine Zeit zu schreiben, die die vollständige Abfrage jetzt, aber was Sie tun, ist start mit der master-Tabelle und die join-im detail Tabelle zweimal. Die erste beitreten sollten mit der oberen Platte (wo die Anzahl von denen weniger = 0, für deine spezielle definition von 'kleiner') für jeden master-Datensatz, und die 2. beitreten sollte mit dem 2. Datensatz (wobei die Anzahl von denen weniger = 1).
Update
Als ich es denken, Sie haben zu tun, eine Gewerkschaft, um Ihre zusätzlichen Datensatz (immer noch das gleiche schreiben mitmachen, aber in einem völlig separaten select-Abfrage, die Sie in die Ergebnisse über union). Ansonsten haben Sie zurückkehren Ihren Ausgang mit dem ersten und dem zweiten detail-Tasten in den gleichen Datensatz.