uniqueidentifier与int错误不兼容

问题描述

| 这是我存储过程中的Select语句,我试图仅根据用户输入的开始日期获取所有案例。我不断收到\'uniqueidentifier与int \'不兼容。不知道如何去做。
(
            SELECT COUNT(disTINCT C.CaseID)
            FROM [Case] C
            INNER JOIN CaSEOffice COD ON C.CaseId = COD.CaseId
            INNER JOIN Office OD ON COD.OfficeId = OD.OfficeId
            WHERE C.DateCreated <= @BeginDate AND  OD.OfficeId = O.OfficeId
            AND C.CaseId NOT IN
            (
                SELECT CaseId 
                FROM CaseStatusChange CSC
                WHERE CSC.DateClosed < @BeginDate
            )
            UNION
            SELECT ReOpened.CaseId FROM
            (
                SELECT C.CaseId,MAX(CSC.DateReopened) AS DateReOpened 
                FROM [Case] C 
                INNER JOIN [CaseStatusChange] CSC ON C.CaseId = CSC.CaseId
                WHERE CSC.DateReopened <= @BeginDate
                GROUP BY C.CaseId
            ) ReOpened 
            WHERE ReOpened.CaseId NOT IN -- Wasn\'t reopened and closed 
            (
                SELECT CaseId FROM CaseStatusChange 
                WHERE CaseId = ReOpened.CaseId AND 
                CaseStatusChange.DateClosed BETWEEN ReOpened.DateReopened AND @BeginDate
            )
        )AS OpenBeginCases
    

解决方法

        CaseID是uniqueidentifier,您可以将COUNT(DISTINCT C.CaseID)与UNION合并为int
...
SELECT COUNT(DISTINCT C.CaseID) --int
...
UNION
...
SELECT ReOpened.CaseId --uniqueidentifier 
...
因此,将出现此错误。您在第一个子句中需要COUNT吗?