我希望有人能幫助我。我有一份報告,可以通過單個銷售代表,區域銷售經理(有幾個銷售代表向他彙報)和「全能」經理進行管理,這些經理應該能夠查看所有銷售代表。如果用戶是salesrep,他應該只能看到分配給他的客戶;如果用戶是區域經理,他應該看到他的客戶以及分配給他管理的代表的所有其他客戶;而「全能」經理應該能夠看到每一個salerep和他們的所有客戶。SSRS 2008需要SQL語句幫助
我們有都有自己的SalesRep#,他們MSID價值,他們的區域經理代表#,和他們的用戶類型SalesRep表(SALESMAN_MSID) - 「S」表示他們是一個SalesRep的,「R」的意思他們是地區經理,「M」意味着他們是一位全職經理。下面是該查詢到目前爲止我有:
select distinct s.slsm_num, s.slsm_desc
from salesman s
where
s.slsm_num in (select distinct slsm_num
from salesman_msid
where slsm_mgr_id = (@SlsmnRealNum))
or (s.slsm_num = (@SlsmnRealNum))
order by s.slsm_desc
這個偉大的工程,如果用戶是SalesRep的或註冊經理,但我無法弄清楚如何編寫SQL來獲取遍佈結果上班。參數「@SlsmnRealNum」中的值是其實際的salesrep#。
在SALESMAN_MSDI表中的數值是這樣:
Slsm_num MSID Slsm_mgr_id User_Type
------------------------------------------------------
1379 ljones 1316 S
1316 pcuday 1316 R
1401 mmay M
,如果我的條款「或USER_TYPE =‘M’,我得到的所有代表中加回不管我測試作爲S的或R.
任何人都可以用SQL語句來獲得「M的」返回所有,但其他2幫助恢復,因爲他們應該
埃塔:這裏的新的SQL語句(可能不適合它在我的評論??) - 再次感謝@Sklivvz! SELECT DISTINCT S.SL SM_NUM,S.SLSM_DESC FROM SALESMAN S其中S.SLSM_NUM IN(SELECT DISTINCT M.slsm_num FROM SALESMAN_MSID中號 WHERE M.slsm_num =(@SlsmnRealNum)--Themselves OR(m.slsm_mgr_id =(@SlsmnRealNum)AND EXISTS - - 其下屬如果類型R (SELECT 1 FROM SALESMAN_MSID米 WHERE m.slsm_num =(@SlsmnRealNum) AND m.User_Type = 'R')) OR EXISTS(SELECT 1 - 人人如果M型 FROM SALESMAN_MSID中號 WHERE m.slsm_num =(@SlsmnRealNum) 和m.USER_TYPE = 'M'))爲了通過s.slsm_desc enter code here
你是最棒的!謝謝! :)我不得不改變它一點,以得到我所需要的,因爲slsm_mgr_id和user_type在salesman_msid表上,其他信息來自推銷員表: –
有什麼機會可以再次幫忙?如果user_type是M,那麼我只想返回user_types R或S的記錄。下面是我的查詢:SELECT DISTINCT S.SLSM_NUM,S.SLSM_DESC FROM SALESMAN S WHERE S.SLSM_NUM IN(SELECT DISTINCT M.slsm_num FROM SALESMAN_MSID M WHERE M .slsm_num = '9999' OR(m.slsm_mgr_id = '9999' AND EXISTS(SELECT 1 FROM SALESMAN_MSID米 WHERE m.slsm_num = '9999' AND m.User_Type = 'R') OR EXISTS(SELECT 1 - 每個人如果輸入M FROM SALESMAN_MSID M WHERE m.slsm_num ='9999' AND m.USER_TYPE ='M')order by s.slsm_desc –