不是有效的方法,但是,我想這應該做我理解正確的問題提供工作: -
Create Table #permissions (permission_id int, permission_desc
varchar(100))
insert into #permissions values (1, 'select'),(2,'insert')
Create Table #users (user_idd int, user_desc varchar(100))
insert into #users values (1, 'John'),(2,'Rohn')
Create Table #fact_table (user_idd int, permission_id int, sal int)
insert into #fact_table values (1,1,200), (2,2,300)
select * from #fact_table
update a set a.permission_id = b.permission_id from #fact_table a
inner join (
select (select user_idd from #fact_table where user_idd=2) user_idd,
permission_id, sal from #fact_table where permission_id = 1
) b on a.user_idd=b.user_idd
一個快速的方法是刪除分配給User_2所有權限。然後: '插入Fact_Tables從那裏USER_ID = 1'假設User_2 Fact_Tables選擇2,Permission_ID,Salary_Amt具有ID = 2和USER_1具有ID = 1。我還假設User_2應具有相同的'Salary_Amt'作爲USER_1 – Petaflop
這裏不是簡單的更新嗎? 'update fact_table set permission_id =(從user_id = user_1_id的fact_table中選擇permission_id)其中user_id = user_2_id'?你有什麼嘗試? –
@Rigerta不會工作,因爲它似乎是一個多對多的關係 – Petaflop