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