简单查询中的SQL错误?有任何想法吗?

时间:2016-11-11 11:12:18

标签: sql

我收到了错误:

Column 'A10000012VICKERS.dbo.IMAGES.idimage' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

任何想法为什么我会收到此错误或如何解决它?我以为我只是要求一些文件流列的大小和其他两个列的值?

SELECT
idimage,
filetype,
SUM(DATALENGTH(filestreamimageoriginal)) AS original,
SUM(DATALENGTH(filestreamimagefull)) AS [full],
SUM(DATALENGTH(filestreamimageextra)) AS extra,
SUM(DATALENGTH(filestreamimagelarge)) AS large,
SUM(DATALENGTH(filestreamimagemedium)) AS medium,
SUM(DATALENGTH(filestreamimagesmall)) AS small, SUM(DATALENGTH(filestreamimagethumbnail)) AS thumbnail
FROM A10000012VICKERS.dbo.IMAGES WHERE display = 1

2 个答案:

答案 0 :(得分:1)

我真的没有看到该查询如何生成该消息。没有具有该名称的列。但是,查询确实有明显的错误。

您的查询是一个聚合查询,因为它在SUM()子句中使用SELECT。但是,这将只返回一行,除非您还有GROUP BY

将此添加到查询的末尾:

GROUP BY idimage, filetype

或者,从SELECT

中删除这些列

答案 1 :(得分:0)

通过使用聚合函数(SUM),您正在聚合您的记录。由于您未指定任何GROUP BY子句,因此将获得一个结果行,即所有行的聚合。但是,在此聚合中,您可以在结果中显示一个idimage或一个filetype

因此,要么在这些上使用聚合函数(例如max(idimage), min(filetype)),要么从查询中删除它们,如果你真的想在所有这些行上有一个聚合。

但是,如果您希望按idimagefiletype汇总,请在查询结尾添加GROUP BY idimage, filetype

相关问题