Ich habe eine gespeicherte SQL-Prozedur Abfrage-Ergebnis wie folgt aus (siehe unten)Aliasing SQL Spaltenfeld mit Datumsfunktionen
EmpID FirstName Dept JoinDate Code1 Code2 Code3 Code4
01 aaa service 2017-02-11 0 2 3 5
02 bbb customerCare 2010-01-23 1 4 7 9
03 ccc Receptionist 2009-12-20 2 5 1 8
Alle diese Felder aus differnet Tabellen entnommen werden, indem sie mit einer Bedingung verbinden. (Ich habe ein geschaffenes Wählen Sie die gespeicherte Prozedur aus, um diesen ersten Wochentag jedes Monats auszuführen)
Meine Anforderung ist, ich möchte alle Code-Felder zum Startdatum ersetzen. Zum Beispiel
Wenn ich diese gespeicherte Prozedur am 1. März ausführen 2017, sollte das Ergebnis wie dies
EmpID FirstName Dept JoinDate 2016-12-01 2017-01-01 2017-02-01 2017-03-01
01 aaa service 2017-02-11 0 2 3 5
02 bbb customerCare 2010-01-23 1 4 7 9
03 ccc Receptionist 2009-12-20 2 5 1 8
example2 aussehen werden: Wenn ich diese gespeicherte Prozedur am 1. April 2017 ausführen, sollte das Ergebnis sein sehen wie folgt aus
*
EmpID FirstName Dept JoinDate 2017-01-01 2017-02-01 2017-03-01 2017-04-01
01 aaa service 2017-02-11 0 2 3 5
02 bbb customerCare 2010-01-23 1 4 7 9
03 ccc Receptionist 2009-12-20 2 5 1 8
*
Das menas,
code4 Feld Aliasname des aktuellen Monats
code3 Feld Aliasname des aktuellen Monats-1
code2 Feld Aliasname sein erster Tag sollte sein erster Tag sollte erster Tag des laufenden Monats sein sollte-2
code1 Feld sollte Aliasname erster Tag des aktuellen Monats-3 seine
Wie kann ich das tun? Ich verwende SQL Server 2014. Ich konnte nicht finden, wie man den Feldnamen mit dem Datum alias annimmt, wenn wir mehrere Tabellen in sql Server verbinden. Bitte helfen Sie mir. Danke, dass Sie sich die Zeit genommen haben, meine Frage zu lesen, und dass Sie sich sehr für Ihre Hilfe bedanken.
Sie werden wahrscheinlich dynamische SQL mit einem PIVOT verwenden müssen, um die Monats Zeilen zu Spalten zu ändern. – EMUEVIL
nur dynamische Abfrage benötigt – DhruvJoshi
@DhruvJoshi du hast Recht. Sie könnten einfach DATEADD verwenden, um die Werte zu erhalten. – EMUEVIL