Hallo,
es soll eine Hierarchie innerhalb einer Tabelle erstellt werden. Die Hierarchie soll aus der Buchungskontonr und dem Kontoschlüssel erstellt werden.
In der Tabelle stehen die Kontoschlüssel aber nur in den Datensätzen, die anderen übergeordnet sind. Also ungefähr so:
Buchungskontonr; Schlüssel;
0001;
0002;
0003;
0004;
0005; 0003...0005
0006;
0007;
0012; 0004...0012
Die Schlüssel konnte ich beim Import bereits in eine 'Von' und eine 'Bis' Spalte aufteilen.
Mit folgendem SQL Skript können die Schlüssel allen betroffenen Konten zugeordnet werden. Allerdings kommen Datensätze doppelt vor, da
etwa 0004 zu 0005 ubd 0012 zugeordnet werden. Kann das Skript erweitert werden, um bei doppelten Datensätzen nur den niedrigeren Schlüssel zu verwenden, ausser das
Buchungskonto = dem Schlüssel, dann soll der nächsthöhere Datensatz erhalten bleiben. (So wird etwa 0005 gleich 0012 zugeordnet und ergibt eine Hierarchie)
Das Skript:
Das Ergebnis: siehe Anhang
VG
Jörg
es soll eine Hierarchie innerhalb einer Tabelle erstellt werden. Die Hierarchie soll aus der Buchungskontonr und dem Kontoschlüssel erstellt werden.
In der Tabelle stehen die Kontoschlüssel aber nur in den Datensätzen, die anderen übergeordnet sind. Also ungefähr so:
Buchungskontonr; Schlüssel;
0001;
0002;
0003;
0004;
0005; 0003...0005
0006;
0007;
0012; 0004...0012
Die Schlüssel konnte ich beim Import bereits in eine 'Von' und eine 'Bis' Spalte aufteilen.
Mit folgendem SQL Skript können die Schlüssel allen betroffenen Konten zugeordnet werden. Allerdings kommen Datensätze doppelt vor, da
etwa 0004 zu 0005 ubd 0012 zugeordnet werden. Kann das Skript erweitert werden, um bei doppelten Datensätzen nur den niedrigeren Schlüssel zu verwenden, ausser das
Buchungskonto = dem Schlüssel, dann soll der nächsthöhere Datensatz erhalten bleiben. (So wird etwa 0005 gleich 0012 zugeordnet und ergibt eine Hierarchie)
Das Skript:
Code:
SELECT b.[BuchungskontenAlternateKey], b.[Buchungskonten], bh.[BuchungskontenAlternateKey] as KategorieNr
FROM [dbo].[DimBuchungskonten] b LEFT OUTER JOIN [dbo].[DimBuchungskonten] bh ON (b.[BuchungskontenAlternateKey] BETWEEn bh.[Von] AND bh.Bis)
ORDER BY [BuchungskontenAlternateKey], KategorieNr
Das Ergebnis: siehe Anhang
VG
Jörg