SELECT falsecount.USERTEMPID,(COALESCE(truecount.STATCOUNT,0) + COALESCE(QAAuditTruecount.STATCOUNT,0)), (COALESCE(falsecount.STATCOUNT, 0) + COALESCE(QAAUDITFalsecount.STATCOUNT,0)), (COALESCE(truecount.STATCOUNT, 0) + COALESCE(falsecount.STATCOUNT, 0)+ COALESCE(QAAUDITFalsecount.STATCOUNT,0) + COALESCE(QAAuditTruecount.STATCOUNT,0)) AS TOTALCOUNT from (select {BPAChecklist}.[UserID] USERTEMPID, Count({BPAChecklist}.[UserID]) AS STATCOUNT from {BPAChecklist} INNER JOIN {LLSQLUpdate} ON {BPAChecklist}.[Id] = {LLSQLUpdate}.[BPAChecklist] INNER JOIN {QAChecklist} ON {LLSQLUpdate}.[Id] = {QAChecklist}.[LLSQLUpdate] AND {QAChecklist}.[IsPass] = false GROUP BY {BPAChecklist}.[UserID] ) falsecount left join (select {BPAChecklist}.[UserID] USERTEMPID, Count({BPAChecklist}.[UserID]) AS STATCOUNT from {BPAChecklist} INNER JOIN {LLSQLUpdate} ON {BPAChecklist}.[Id] = {LLSQLUpdate}.[BPAChecklist] INNER JOIN {QAChecklist} ON {LLSQLUpdate}.[Id] = {QAChecklist}.[LLSQLUpdate] INNER JOIN {ForEasyFix} ON {ForEasyFix}.[QAChecklist] = {QAChecklist}.[Id] INNER JOIN {QAAudit} ON {ForEasyFix}.[Id] = {QAAudit}.[ForEasyFix] AND {QAAudit}.[IsPAss] = False -- WHERE datefinish between dateparam1 and dateparam2 GROUP BY {BPAChecklist}.[UserID] ) QAAUDITFalsecount on falsecount.USERTEMPID = QAAUDITFalsecount.USERTEMPID left join ( select {BPAChecklist}.[UserID] USERTEMPID, Count({BPAChecklist}.[UserID]) AS STATCOUNT from {BPAChecklist} INNER JOIN {LLSQLUpdate} ON {BPAChecklist}.[Id] = {LLSQLUpdate}.[BPAChecklist] INNER JOIN {QAChecklist} ON {LLSQLUpdate}.[Id] = {QAChecklist}.[LLSQLUpdate] AND {QAChecklist}.[IsPass] = true -- WHERE datefinish between dateparam1 and dateparam2 GROUP BY {BPAChecklist}.[UserID] ) truecount on truecount.USERTEMPID = falsecount.USERTEMPID left join (select {BPAChecklist}.[UserID] USERTEMPID, Count({BPAChecklist}.[UserID]) AS STATCOUNT from {BPAChecklist} INNER JOIN {LLSQLUpdate} ON {BPAChecklist}.[Id] = {LLSQLUpdate}.[BPAChecklist] INNER JOIN {QAChecklist} ON {LLSQLUpdate}.[Id] = {QAChecklist}.[LLSQLUpdate] INNER JOIN {ForEasyFix} ON {ForEasyFix}.[QAChecklist] = {QAChecklist}.[Id] INNER JOIN {QAAudit} ON {ForEasyFix}.[Id] = {QAAudit}.[ForEasyFix] AND {QAAudit}.[IsPAss] = True -- WHERE datefinish between dateparam1 and dateparam2 GROUP BY {BPAChecklist}.[UserID] ) QAAUDITTruecount on falsecount.USERTEMPID = QAAUDITTruecount.USERTEMPID