Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stored procedures 嵌套的select语句_Stored Procedures - Fatal编程技术网

Stored procedures 嵌套的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

如果大于0,我将尝试根据事例数返回结果,但当我尝试执行存储过程时,我收到一个错误,说明:操作数类型冲突:uniqueidentifier与tinyint不兼容。这就是where子句中嵌套的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语句,该语句将过滤结果到CASE>0

错误消息告诉您

其中一个比较是比较两列不同类型的内容


查看表结构,查看要比较的列中哪些列具有uniqueidentifier,哪些列具有Int,然后查看sql并查看要比较的列。

where子句中可能存在疏忽:子查询使用.CaseID,而它可能应该使用Activity.CaseID,否则子查询最好用where表示。如果A.CaseId是uniqueidentifier,则它不可能大于1。@NikolaMarkovinovći更改了上面的where子句,现在的错误声明是:聚合不能出现在where子句中,除非它出现在HAVING子句或select列表中包含的子查询中,正在聚合的列位于外部引用中。为什么要尝试使用count?你能写下(编辑问题以便每个人都能看到)你对这个子查询的看法吗?@NikolaMarkovinovć我解释了我想从上面的子查询中得到什么。感谢您当前和提前提供的帮助。