问题描述
|
这是我存储过程中的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吗?