Stored procedures 嵌套的select语句
如果大于0,我将尝试根据事例数返回结果,但当我尝试执行存储过程时,我收到一个错误,说明:操作数类型冲突:uniqueidentifier与tinyint不兼容。这就是where子句中嵌套的select语句Stored procedures 嵌套的select语句,stored-procedures,Stored Procedures,如果大于0,我将尝试根据事例数返回结果,但当我尝试执行存储过程时,我收到一个错误,说明:操作数类型冲突:uniqueidentifier与tinyint不兼容。这就是where子句中嵌套的select语句 SELECT O.OfficeId, O.OfficeName AS Name, AT.Description AS CaseActivity, SUM(A.Duration) AS [CaseMinutes], CAST(SUM
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语句,该语句将过滤结果到CASE>0 错误消息告诉您 其中一个比较是比较两列不同类型的内容
查看表结构,查看要比较的列中哪些列具有uniqueidentifier,哪些列具有Int,然后查看sql并查看要比较的列。where子句中可能存在疏忽:子查询使用.CaseID,而它可能应该使用Activity.CaseID,否则子查询最好用where表示。如果A.CaseId是uniqueidentifier,则它不可能大于1。@NikolaMarkovinovći更改了上面的where子句,现在的错误声明是:聚合不能出现在where子句中,除非它出现在HAVING子句或select列表中包含的子查询中,正在聚合的列位于外部引用中。为什么要尝试使用count?你能写下(编辑问题以便每个人都能看到)你对这个子查询的看法吗?@NikolaMarkovinovć我解释了我想从上面的子查询中得到什么。感谢您当前和提前提供的帮助。