私はこの作業がかなりシンプルでなければならないことを認識していますが、何らかの理由でしばらく考えられません。同様の問題を検索しても役に立たなかった。T-SQL:ユーザーの部門に列を入力する方法は?
私は2つのテーブルがあるとします:とDepartmentsAndUsersです。 DepartmentsAndUsersテーブルに配置されたユーザの部門の私は、最初の(または任意の)で文書テーブルでDepartemntID列を埋めるにはどうすればよい
--- Documents --- (one document could have any user as its author)
DocumentID AuthorID DepartemntID
1 User1 null
2 User2 null
3 User3 null
4 User1 null
5 User4 null
--- DepartmentsAndUsers --- (a user could be in any number of departments)
DepartmentID UserID
Dept1 User1
Dept1 User2
Dept1 User3
Dept2 User4
Dept2 User5
Dept3 User1
Dept3 User3
?
例えば、User1はそうが文献 1および4のがDEPT1又はDept3値で埋めなければならないDepartmentIdのDEPT1およびDept3です。
テーブルのロジックを変更できないので、正規化ポイントからこれを考えないでください。
同じシナリオで解決されたソリューションへのヘルプやリンクは高く評価されます。
、ユーザが複数の部門にすることができますので、あなたが文書テーブルに置かれた1かまいありません? User1にとって、彼らはすべてDept1と言うことができますか?それは簡単です。そうでなければ、 "Dept1"または "Dept3"を取得する文書を特定する実際の方法はありません – pmbAustin
それは問題ではありません。部署のいずれかが行います。 –
これは、同じ行に置くか、複数の行が大丈夫かどうかによって異なります。後者の場合、単純な結合が機能します。それ以外の場合は、動的なピボットが必要です。または、部門のリストを1つの列に入れてください。 – scsimon