SELECT code , name ,count(*) as count,pcode FROM DIC_REGION where TYPE = 2 group by PCODE 这个子查询的问题 你的group by 后面只有PCODE,select中除了PCODE,组函数,常数之外不能出现其他字段 可以改为group by PCODE,code , name
SELECT code , name ,count(*) as count,pcode FROM DIC_REGION where TYPE = 2 group by PCODE
建议把 name 去掉,不然有可能出现子查询多行一行的错误 。
SELECT code , name ,count(*) as count,pcode FROM DIC_REGION where TYPE = 2 group by PCODE 我用的是mysql,这条语句是可以执行的,他报错的是这条 where B.TYPE = 1 and C.CODE = B.CODE,这条的只要目的是希望把查询出来的结果和需要修改的字段相关联
SELECT code , name ,count(*) as count,pcode FROM DIC_REGION where TYPE = 2 group by PCODE 这语句到啥数据库也执行不了,基本的语法问题 报错的位置可能是其他的位置,但是报错的原因是在这
在group by的查询中有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要), 查询字段只能是分组的字段或者组合函数,其他的字段出现在查询字段时会报错。 简单来说吧,使用group by 关键字时,在select列表中可以指定的项目是有限制的,select语句中仅允许以下几项, 1:被分组的列 2:为每个分组返回一个值的表达式
这个子查询的问题
你的group by 后面只有PCODE,select中除了PCODE,组函数,常数之外不能出现其他字段
可以改为group by PCODE,code , name
建议把 name 去掉,不然有可能出现子查询多行一行的错误 。
我用的是mysql,这条语句是可以执行的,他报错的是这条
where B.TYPE = 1 and C.CODE = B.CODE,这条的只要目的是希望把查询出来的结果和需要修改的字段相关联
这语句到啥数据库也执行不了,基本的语法问题
报错的位置可能是其他的位置,但是报错的原因是在这
查询字段只能是分组的字段或者组合函数,其他的字段出现在查询字段时会报错。
简单来说吧,使用group by 关键字时,在select列表中可以指定的项目是有限制的,select语句中仅允许以下几项,
1:被分组的列
2:为每个分组返回一个值的表达式