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!
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:
Meine Antwort auf Diese Frage funktioniert einfacher mit SQL Server 2000, da die XML-Funktionen von SQL Server 2005 nicht verwendet werden.
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.
Tags und Links sql sql-server tsql dynamic-sql