0

私は従業員の出席を示すテーブルを持っています-言ってみましょう-OATT。以下は、構造とサンプルデータです

AttDate EmpId EmpName AttCode InTime OutTime
2009 年 10 月 1 日 1 ジャイナ、ラフル P 0900 1830
2009 年 2 月 10 日 1 ジャイナ、ラフル P 0900 1830
2009 年 3 月 10 日 1 ジャイナ、ラフル P 0900 1830
2009 年 4 月 10 日 1 ジャイナ、ラフル P 0900 1830
2009 年 5 月 10 日 1 ジャイナ、ラフル P 0900 1830
06-10-2009 1 Jain、Rahul WO 0900 1830
07-10-2009 1 Jain、Rahul WO 0900 1830
2009 年 8 月 10 日 1 ジャイナ、ラフル P 0900 1830
09-10-2009 1 Jain、Rahul L 0900 1830
2009 年 10 月 10 日 1 ジャイナ、ラフル P 0900 1830
01-10-2009 1 Jain、Rahul A 0900 1830

次の結果が必要です。

EmpId 01-10 02-10 03-10 04-10 05-10
1PPPPP
2 PPPLP
3PPPA

これはピボット クエリを使用して実行できることはわかっていますが、指定された日付範囲に対して実行するには動的クエリが必要です。SQL Server 2005 を使用しています。

4

2 に答える 2

1

PIVOT キーワードが役立つ場合がありますが、それでも、クエリを実行する前に列が何であるかを知る必要があります。これは通常、2 つのクエリを実行することを意味します。1 つは列名のリストを取得するためのもので、もう 1 つは実際に結果を取得するためのものです。

于 2010-01-23T14:07:57.100 に答える
-1

解決策の 1 つは、クエリを作成して TSQL コードを変数に出力し、その後 exec @variable を呼び出すことです。

于 2010-01-23T14:18:25.923 に答える