我不知道为什么这是无效的,我不能弄清楚它。当我的主管离开时,我得到了一个遗留数据库,在有人来接替他之前,我一直在负责。我正在尝试运行此查询...
SELECT tblM.guidRId, SUM(dbo.tblCH.curTotalCost) AS curValue
FROM tblCH INNER JOIN
tblM ON tblCH.guidMId = tblM.guidMId INNER JOIN
ViewLM ON tblM.strNumber = ViewLM.strNumber
WHERE (tblM.guidRId = '4d832bc8-1827-4054-9896-6111844b0f26')错误I keep getting is...Msg 8120,Level 16,State 1,Line 1 Column 'tblM.guidRId‘在选择列表中无效,因为它既没有包含在聚合函数中,也没有包含在GROUP BY子句中。
为什么会发生这个错误?
发布于 2010-10-06 21:17:10
您忘记了对guidRId进行分组。(您正在聚合数据)
SELECT
tblM.guidRId,
SUM(dbo.tblCH.curTotalCost) AS curValue
FROM
tblCH
INNER JOIN tblM ON tblCH.guidMId = tblM.guidMId
INNER JOIN ViewLM ON tblM.strNumber = ViewLM.strNumber
WHERE
tblM.guidRId = '4d832bc8-1827-4054-9896-6111844b0f26'
GROUP BY tblM.guidRId发布于 2010-10-06 21:16:00
因为如果您要使用诸如SUM()或COUNT、AVG()等聚合函数,则需要一个GROUP BY。使用另一个非聚合列:
SELECT tblM.guidRId, SUM(dbo.tblCH.curTotalCost) AS curValue
FROM tblCH
INNER JOIN tblM
ON tblCH.guidMId = tblM.guidMId
INNER JOIN ViewLM
ON tblM.strNumber = ViewLM.strNumber
WHERE tblM.guidRId = '4d832bc8-1827-4054-9896-6111844b0f26'
GROUP BY tblM.guidRId;发布于 2010-10-06 21:17:13
尝试:
SELECT
tblM.guidRId, SUM(dbo.tblCH.curTotalCost) AS curValue
FROM
tblCH
INNER JOIN tblM
ON tblCH.guidMId = tblM.guidMId
INNER JOIN ViewLM
ON tblM.strNumber = ViewLM.strNumber
WHERE (tblM.guidRId = '4d832bc8-1827-4054-9896-6111844b0f26')
GROUP BY tblM.guidRIdhttps://stackoverflow.com/questions/3872788
复制相似问题