Wie wählt man Spalten als Zeilen aus?

9

Also, ich habe herumgesucht und ich habe ähnliche Dinge wie mein Problem gefunden, aber ich brauche mehr Hilfe, um eine echte Lösung zu finden.

Ich versuche eine Abfrage zu erstellen, die 2 Datenspalten zurückgibt, die erste Spalte sollte eine Liste der Spaltennamen selbst sein und die zweite sollte der Wert dieser Spalte sein.

Optisch würde es so aussehen

%Vor%

Ich bin mir ziemlich sicher, dass dies dynamisches SQL erfordert, aber ich habe keine Ahnung, wie ich überhaupt mit der Erstellung der Abfrage beginnen soll.

Jede Hilfe ist willkommen!

    
Shaded 16.10.2009, 14:43
quelle

5 Antworten

6

Dies sollte für jede Tabelle funktionieren, aber in meinem Beispiel erstelle ich nur einen Test. Sie müssen den Tabellennamen innerhalb von @YourTableName festlegen. Außerdem müssen Sie @YourTableWhere festlegen, um die Ergebnisse auf eine Zeile zu beschränken. Andernfalls sieht die Ausgabe bei mehreren gemischten Zeilen seltsam aus.

versuche das:

%Vor%

AUSGABE:

%Vor%

BEARBEITEN

Für SQL Server 2000-Kompatibilität sollten Sie in der Lage sein, varchar (max) durch varchar (8000) zu ersetzen und dies anstelle der Abfrage SELECT @YourQuery aus dem obigen Code zu verwenden:

%Vor%     
KM. 16.10.2009, 18:40
quelle
2
%Vor%     
Chris Ballance 16.10.2009 14:49
quelle
0

Sie könnten immer so etwas tun

%Vor%     
kemiller2002 16.10.2009 14:49
quelle
0

Meine Antwort auf Diese Frage funktioniert einfacher mit SQL Server 2000, da die XML-Funktionen von SQL Server 2005 nicht verwendet werden.

    
Cade Roux 16.10.2009 21:56
quelle
0

Sie wissen nicht genau, wie Sie Ihren Bericht präsentieren und mit was Sie ihn erstellen. Verwenden Sie direkte Ergebnisse aus dem Abfragetool, um Ihren "Bericht" zu generieren? In diesem Fall denken Sie, dass Sie versuchen, einen Nagel mit einem Schraubenzieher zu schlagen. Verwenden Sie das richtige Werkzeug für den Job.

Die SQL-Sprache sollte nicht direkt zum Einrichten Ihrer Präsentationsdaten zum Erstellen Ihres Berichts verwendet werden. Wirklich, es ist eine dumme Idee. Die Tatsache, dass Sie einen Bericht mit direkten SQL-Anweisungen schreiben können, bedeutet nicht, dass Sie sollten .

Sie sollten Ihren Bericht wirklich mit einem selbst geschriebenen Anwendungsprogramm oder einem Berichterstellungstool wie Crystal Reports erstellen.

Von Ihnen geschriebenes Anwendungsprogramm: Wenn Sie ein Cursor-Objekt zum Abfragen der Datenbank verwenden, können Sie einfach die Spaltennamen von diesem Cursor-Objekt abrufen. Problem gelöst.

Report Generation Tool: normalerweise bieten sie eine Möglichkeit zur Darstellung der dynamischen Daten, die auftreten könnten.

Wie auch immer, ich denke, dass Sie Ihren Ansatz dazu überdenken müssen.

    
J. Polfer 16.10.2009 22:12
quelle

Tags und Links