标志参数无法正常工作(SQL)

标志参数无法正常工作(SQL),sql,tsql,Sql,Tsql,我有一个AcctMgr_标志,指定一个人作为客户经理。这是在公司团队的桌子上。如果我将参数@acctmgr作为“true”发送,我只想返回@member是客户经理的活动。如果@acctmgr不是true,我不在乎acctmgr_标志是否为true SO_活动中的每个活动都有一个指定的_To列,该列指定一个成员recid。公司团队中的每个成员都有AcctMgr标志和公司RecID。v_rpt_Member中的每个成员都有一个成员recid和一个公司recid 这是我的密码 SELECT v_rpt

我有一个AcctMgr_标志,指定一个人作为客户经理。这是在公司团队的桌子上。如果我将参数@acctmgr作为“true”发送,我只想返回@member是客户经理的活动。如果@acctmgr不是true,我不在乎acctmgr_标志是否为true

SO_活动中的每个活动都有一个指定的_To列,该列指定一个成员recid。公司团队中的每个成员都有AcctMgr标志和公司RecID。v_rpt_Member中的每个成员都有一个成员recid和一个公司recid

这是我的密码

SELECT v_rpt_Company.Company_Name, SO_Activity.Subject, SO_Activity.Notes,
       SO_Activity.Date_Closed, SO_Activity.Last_Update, v_rpt_Member.Member_ID,
       v_rpt_ActivityType.SO_Activity_Type_Desc,
       v_rpt_ActivityStatus.SO_Act_Status_Desc
FROM v_rpt_Company 
LEFT OUTER JOIN SO_Activity 
  ON v_rpt_Company.Company_RecID = SO_Activity.Company_RecID 
LEFT OUTER JOIN v_rpt_Member 
  ON SO_Activity.Assign_To = v_rpt_Member.Member_ID 
LEFT OUTER JOIN Company_Team 
  ON v_rpt_Member.Member_RecID = Company_Team.Member_RecID AND 
     v_rpt_Company.Company_RecID = Company_Team.Company_RecID 
LEFT OUTER JOIN v_rpt_ActivityType 
  ON SO_Activity.SO_Activity_Type_RecID=v_rpt_ActivityType.SO_Activity_Type_RecID
LEFT OUTER JOIN v_rpt_ActivityStatus 
  ON SO_Activity.so_act_status_recid = v_rpt_ActivityStatus.SO_Act_Status_RecID
WHERE (Company_Team.AcctMgr_Flag = 
       CASE WHEN @acctmgr = 'true' THEN 1 ELSE Company_Team.AcctMgr_Flag END) AND 
      (SO_Activity.Assign_To = @member) AND 
      (v_rpt_ActivityStatus.SO_Act_Status_Desc = 
       CASE WHEN @act_status IS NULL 
            THEN v_rpt_ActivityStatus.so_act_status_desc ELSE @act_status END) AND 
      (v_rpt_Company.Company_RecID = 
       CASE WHEN @company = '' THEN v_rpt_Company.Company_RecID ELSE @company END) AND 
      (SO_Activity.Last_Update >= CONVERT(datetime, @date_start, 101)) AND
      (SO_Activity.Last_Update <= CONVERT(datetime, @date_end, 101))
GROUP BY v_rpt_Company.Company_Name, SO_Activity.Subject, SO_Activity.Notes,
         SO_Activity.Date_Closed, SO_Activity.Last_Update, v_rpt_Member.Member_ID, 
         v_rpt_ActivityType.SO_Activity_Type_Desc, 
         v_rpt_ActivityStatus.SO_Act_Status_Desc
ORDER BY v_rpt_Company.Company_Name, SO_Activity.Last_Update DESC
而不是

(Company_Team.AcctMgr_Flag = CASE WHEN @acctmgr = 'true' THEN 1 ELSE Company_Team.AcctMgr_Flag END)
把这个

(@acctmgr != 'true' or Company_Team.AcctMgr_Flag = 1)

绝对正确。非常感谢。