Zum Inhalt springen

SSRS Report anlegen mit gewisser Ordnung


digga_mies

Empfohlene Beiträge

Hey Leute,

konnte das Topic irgendwie nicht besser beschreiben.

Also ich hab da so nen Report, da werden 4 Tabellen miteinander verglichen und ich möchte jetzt, das immer die Leeren Felder von jeder Spalte als erstes angezeigt werden, das es im Endeffekt dann irgendwann wie eine Treppe aussieht. Etwa so:

1234

X

XX

XXX

XXXX

Vielleicht hat ja mal jemand eine Idee...

Grüße

Rob

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab ich getestet, funktioniert irgendwie nicht, aber vielleicht mach ich auch was falsch...

So ungefähr sieht meine Query aus:

SELECT table1.name1, table2.name2, table3.name3, table4.name4

FROM table1

LEFT OUTER JOIN table2

ON table1.name1 = table2.name2

LEFT OUTER JOIN table3

ON table2.name2 = table3.name3

LEFT OUTER JOIN table4

ON table3.name3 = table4.name4

ORDER BY table1.name1, table2.name2, table3.name3, table4.name4

Ob man da jetzt ASC oder DESC hinschreibt, oder in China fällt nen Sack Reis vom Fahrrad, ist egal, denn es geht so oder so nicht. Hat jemand eine Idee was ich da anders machen könnte, damit meine Sortierung funktioniert??

Grüße

Digga_Mies

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Deine Sortierung läuft erstmal nach alphabetischer Reihenfolge unabhängig von der Länge des Strings. Diesen musst Du auch sortieren.

Angenommen man sortiert erst nach der Länge und dann in alphabetischer Reihenfolge, dann erhältst Du den besagten Baum.

Ungefähr so:


SELECT table1.name1, table2.name2, table3.name3, table4.name4

FROM table1 

LEFT OUTER JOIN table2 

ON table1.name1 = table2.name2 

LEFT OUTER JOIN table3 

ON table2.name2 = table3.name3

LEFT OUTER JOIN table4 

ON table3.name3 = table4.name4

ORDER BY 

LEN(table1.name1), 

table1.name1, 

LEN(table2.name2),

table2.name2, 

LEN(table3.name3), 

table3.name3, 

LEN(table4.name4), 

table4.name4

das Ergebnis sähe etwas so aus: X XX XXX X XXX XXXX X XX Oder Du sortierst erst alles nach der Länge und dann alphabetisch:

SELECT table1.name1, table2.name2, table3.name3, table4.name4

FROM table1 

LEFT OUTER JOIN table2 

ON table1.name1 = table2.name2 

LEFT OUTER JOIN table3 

ON table2.name2 = table3.name3

LEFT OUTER JOIN table4 

ON table3.name3 = table4.name4

ORDER BY 

LEN(table1.name1),

LEN(table2.name2),

LEN(table3.name3),

LEN(table4.name4),   

table1.name1, 

table2.name2, 

table3.name3, 

table4.name4

Dann würde das Ergebnis so aussehen:

X

XX

XXX

XXXX

XXXXX

Viele Grüße,

Thomas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Antwort...Aber das ist nicht so ganz mein Problem...

Es geht in diesem Falle nicht um die Länge der Inhalte...Ich meinte eigentlich das die Nullwerte oben stehen...

Die tabelle würde also so aussehen sollen:

1|0|0|0

1|0|0|0

1|1|0|0

1|1|1|0

1|1|1|0

1|1|1|1

Die 1 steht für einen Eintrag und die 0 für einen Nullwert...Und daraufhin sollen die Einträge dann auch noch alphabetisch sortiert werden...Das funktioniert aber einfach nicht...Wenn man nur 2 Tabellen hat, die miteinander verknüpft sind, dann klappt das wunderbar, aber ab 3 steigt die Sortierung aus, und er sortiert die erste Spalte noch nach Alphabet und die 2. 3. und 4. werden einfach immer passend dran geklatscht...Mittlerweile glaube ich, das man eine solche Sortierung gar nicht durchführen kann...Weil ja alle 4 Tabellen miteinander verknüpft sind...

Meinem Verständnis nach müsste das ganze als Erstes in Spalte 1 nach ABC sortiert werden und dürfte nur alle NULL werte in den anderen Spalten haben...Darauf sollte dann wieder von Vorne angefangen werden im ABC wenn ein zweiter Wert dazukommt in Spalte 2...Und so immer durchgehend...Aber meine Logik ist da anscheinend nicht weit genug...

Wenn irgendjemand schon mal auf ein solches Problem gestoßen ist, bitte helft mir...:confused::confused:

Greetz

Rob

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

die Sortierung ist korrekt. Mal angenommen man hat vier Tabellen:

Land, Stadt, Strasse, Hausnummer. (nur als Beispiel...)

Erstellst Du einen Join wie Du ihn oben erstellt hast so erhältst Du erst alle Länder schön sortiert. Die Sortierung der ersten Spalte steht somit fest.

Jetzt werden in der nächsten Spalte die Städte ausgegeben... (sortiert innerhalb des Landes!)

Sollte hier ein Land vorkommen zu dem keine Städte eingetragen sind (also Stadt ist NULL) so wird dieses NULL natürlich neben dem Land auftauchen bei dem es NULL ist. So kann es auch in der Mitte oder unten stehen. So zieht sich das durch alle abgefragte Tabellen.

Wenn Du dort NULL Werte drin hast wirst Du höchstens eine Sortierung in dieser Form erreichen.

1|0|0|0

1|1|0|0

1|1|1|0

1|1|1|1

1|0|0|0

1|1|1|1 usw.

Somit ist dies kein Fehler sondern logisch völlig korrekt, weil Du ja nicht die NULL Werte (in z.B. eine andere Stadt) verschieben kannst, nur damit es besser aussieht.

Viele Grüße,

Thomas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay...Also hab ich zumindest schon mal nicht falsch gedacht, das ist schon mal ermutigend :P

Aber rein aus dem Gedanken her...Kann man überhaupt so sortieren wie ich meinte? Also quasi alle Länder mit Nullwerten als erstes sortiert, und danach erst die Länder die eine Stadt eingetragen haben usw....

Iwie lässt sich das schlecht erklären...Ich hoffe ihr versteht was ich meine...Man kann doch sicher über eine Query eine solche Sortierung erstellen, oder meint ihr nicht?

Könnte nur sein, das sie etwas komplizierter wird.

Danke für die Antworten ;)

Rob

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...