SELECT
[SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
FROM [DB40].[dbo].[STK001]
GROUP BY [ComCode]
ORDER BY [ComCode] ASC它老是说
消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'DB40.dbo.STK001.SEQ' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
而且是每个字段都这样(我一个个注释下来).....
[SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
FROM [DB40].[dbo].[STK001]
GROUP BY [ComCode]
ORDER BY [ComCode] ASC它老是说
消息 8120,级别 16,状态 1,第 1 行
选择列表中的列 'DB40.dbo.STK001.SEQ' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
而且是每个字段都这样(我一个个注释下来).....
解决方案 »
- 求字符串截取转换方法
- 关于SQL SERVER 2005往ORACLE 9I中导入数据的问题
- 各位大哥大姐好:有谁能提供一个SQL-server2005企业版的下载地址!要好用的!!谢谢了!!!
- sql server 2005 的dts工具在哪?
- sql2000查询分析器里运行此条语句出错,到底是哪错的泥?
- 用 xsl 把此 xml 与 此 html 结合, 这个xsl 如何写?(看了教程,但觉得好像xsl没那么自由灵活)
- 简单sql 行转列,抢分,高手进!
- 急问~关于连接池超时的问题!!
- 现在我的SQL语句是这样 在线等。。。
- 安装SQL Server 2000时为什么到最后说“安装程序配置服务器失败”,怎么解决啊?
- 請問如何把一個列轉換成一個時間,並且查詢時以這個為條件來查詢如下
- 请教一个sql查询的问题
[SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
FROM [DB40].[dbo].[STK001]
GROUP BY [SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
ORDER BY [ComCode] ASC好好看看聚合函数的用法~~
[SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
FROM [DB40].[dbo].[STK001]
GROUP BY [SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
ORDER BY [ComCode] ASC
这样才对,不过这样就应该不符合楼主原来的本意了
与我刚学Sql时一样,哈哈
[SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
FROM [DB40].[dbo].[STK001]
GROUP BY [SEQ]
,[CTIME]
,[MTIME]
,[RTIME]
,[IsValid]
,[Re]
,[ComCode]
,[F001]
,[F002]
,[StockCode]
,[OldCode]
,[StockSName]
,[F003]
,[F004]
,[comtime]
,[ABBR]
ORDER BY [ComCode] ASC
这样才对,不过这样就应该不符合楼主原来的本意了
与我刚学Sql时一样,哈哈
列名可以应用聚合函数
只能选出这样的列:
1.group by后面指定的列,
2.不是group by后面的列,则必须包含在一个聚合函数里,例如sum(SEQ),avg(SEQ)等等。select ComCode,sum(SEQ) as totalSEQ,Count(*) as totalCount
from [DB40].[dbo].[STK001]
group by ComCode --正确,如果SEQ这一列能使用sum()函数的话select ComCode,SEQ
from [DB40].[dbo].[STK001]
group by ComCode --错误,SEQ不在group by字句中,并且也没有对它施加聚合函数,对于同一个ComCode,表中可能对应多个SEQ,系统不知道选哪个SEQ,因此报错
GROUP BY 子句
指定用来放置输出行的组,并且如果 SELECT 子句 <select list> 中包含聚合函数,则计算每组的汇总值。指定 GROUP BY 时,选择列表中任一非聚合表达式内的所有列都应包含在 GROUP BY 列表中,或者 GROUP BY 表达式必须与选择列表表达式完全匹配。
说明 如果未指定 ORDER BY 子句,则使用 GROUP BY 子句不按任何特定的顺序返回组。建议始终使用 ORDER BY 子句指定具体的数据顺序。
原来聚合函数是指这种的啊,我还以为要自己去写function呢.....联机帮助好简陋.....
加分结帖,分不多,请多多包涵