0
我想返回基于案例数量的结果,如果大于0但是当我尝试执行存储过程时出现错误,说明:操作数类型冲突:uniqueidentifier与tinyint不兼容。这是我在where子句中嵌套的select语句。嵌套select语句
SELECT
O.OfficeId,
O.OfficeName AS Name,
AT.Description AS CaseActivity,
SUM(A.Duration) AS [CaseMinutes],
CAST(SUM(A.Duration) AS FLOAT)/60 AS [CaseHours],
COUNT(A.ActivityId) AS Activities,
COUNT(DISTINCT A.CaseId) AS Cases,
MIN(CAST(A.Duration AS FLOAT)/60) AS [Case Min Time],
MAX(CAST(A.Duration AS FLOAT)/60) AS [Case Max Time],
SUM(CAST(A.Duration AS FLOAT)/60)/COUNT(A.ActivityId) AS [Case Avg Time],
SUM(CAST(A.Duration AS FLOAT)/60) AS [Case TotalHours]
FROM Activity A
INNER JOIN ActivityType AT ON A.ActivityTypeId = AT.ActivityTypeId
INNER JOIN ActivityEntry AE ON A.ActivityEntryId = AE.ActivityEntryId
INNER JOIN [Case] C ON A.CaseId = C.CaseId
INNER JOIN [Office] O ON AE.OfficeId = O.OfficeId
INNER JOIN [User] U ON C.CreatedByUserId = U.UserId
WHERE A.CaseId in(select A.CaseId from Activity where A.CaseId > 1 AND .dbo.DateOnly(AE.ActivityDate) BETWEEN @BeginDate AND @EndDate)
GROUP BY
O.OfficeId,
O.OfficeName,
AT.Description
**从存储过程中预期的目标* *
我想从这个存储过程,其中的情况下计数是返回结果大于0。目前,这个存储过程返回的所有活动病例0或更高。我只获得活动感兴趣,其中病例是大于0我的where子句中我试图插入另一个select语句,将结果进行过滤,以案例> 0
在where子句中可能存在一个疏忽:子查询使用A.CaseID,它应该使用Activity.CaseID,否则子查询将更好地表示为where。 –
如果A.CaseId是uniqueidentifier,它不可能大于1. –
@NikolaMarkovinovć我修改了上面的where子句,现在错误语句是:聚合可能不会出现在WHERE子句中,除非它在子查询中包含在HAVING子句或选择列表,并且要汇总的列位于外部引用中。 – Masriyah