2012-09-15 41 views
2

查詢該結構在是對還是錯這給了我錯誤在SQL Server

SELECT TblProjectResources.UserId 
FROM TblTasks,TblProjectResources 
WHERE TblTasks.ProjectId=TblProjectResources.ProjectId 
AND [email protected] AND TblProjectResources.IsRemoved=0 
AND TblProjectResources.UserId IN(
    (SELECT UserId 
     FROM TblProjectResources 
     WHERE IsRemoved=0 
     AND ProjectApproval=1 
     AND [email protected]) 
    or 
    (SELECT TblAssignments.AssigneeId 
     FROM TblTasks,TblAssignments 
     WHERE TblTasks.TaskId=TblAssignments.AssignmentEntityId 
     AND TblAssignments.AssignmentEntity='Task' 
     AND [email protected]) 
    or 
     (SELECT UserId FROM TblProjects WHERE [email protected]) 
) 
+0

你需要指出你得到的錯誤是什麼。什麼信息?另外,你想要做什麼?您是否試圖簡化SQL以調試更簡單的版本?你是否搜索了錯誤信息?你發現了什麼? – EdC

+0

什麼是錯誤? – hims056

回答

0

我認爲你要使用TblProjectResources.UserId IN瞬間與OR嘗試這樣的:

AND (TblProjectResources.UserId IN 
     (SELECT UserId 
     FROM TblProjectResources 
     WHERE IsRemoved=0 
     AND ProjectApproval=1 
     AND [email protected]) 
    OR 
    TblProjectResources.UserId IN 
     (SELECT TblAssignments.AssigneeId 
     FROM TblTasks,TblAssignments 
     WHERE TblTasks.TaskId=TblAssignments.AssignmentEntityId 
     AND TblAssignments.AssignmentEntity='Task' 
     AND [email protected]) 
    OR 
    TblProjectResources.UserId IN 
     (SELECT UserId FROM TblProjects WHERE [email protected]) 
) 
+0

它現在工作非常感謝 –

0

@ hims056答案應該適合你。就像替代品一樣,您可以嘗試用UNION/UNION ALL替換OR。這也應該起作用。

SELECT TblProjectResources.UserId 
FROM TblTasks,TblProjectResources 
WHERE TblTasks.ProjectId=TblProjectResources.ProjectId 
AND [email protected] AND TblProjectResources.IsRemoved=0 
AND TblProjectResources.UserId IN(
    (SELECT UserId 
     FROM TblProjectResources 
     WHERE IsRemoved=0 
     AND ProjectApproval=1 
     AND [email protected]) 
    UNION 
    (SELECT TblAssignments.AssigneeId 
     FROM TblTasks,TblAssignments 
     WHERE TblTasks.TaskId=TblAssignments.AssignmentEntityId 
     AND TblAssignments.AssignmentEntity='Task' 
     AND [email protected]) 
    UNION 
     (SELECT UserId FROM TblProjects WHERE [email protected]) 
)