在select 中出现的字段名要么在group by 子句中,要么出现在聚合函数中。
having是聚合函数的条件判断语句,但却没有出现条件判断符。我想你完全可以这样写:
select bh,bt,zw,fj,clr,clrdw,clsj,clbj,clyj,czbj,scbj,clsx
from BG_QSCL
where scbj='0' and clsx=(select max(clsx) from BG_QSCL)
order by clsj desc;
having是聚合函数的条件判断语句,但却没有出现条件判断符。我想你完全可以这样写:
select bh,bt,zw,fj,clr,clrdw,clsj,clbj,clyj,czbj,scbj,clsx
from BG_QSCL
where scbj='0' and clsx=(select max(clsx) from BG_QSCL)
order by clsj desc;
from BG_QSCL
where scbj='0' and clsx=(select max(clsx) from BG_QSCL)
order by clsj,BH desc;
bh,
bt,
zw,
fj,
clr,
clrdw,
clsj,
clbj,
clyj,
czbj,
scbj,
max(clsx)
from
BG_QSCL
where
scbj='0'
GROUP by
bh,
bt,
zw,
fj,
clr,
clrdw,
clsj,
clbj,
clyj,
czbj,
scbj
having MAX(clsx) >100
order by
clsj desc;
使用group by的时候,在select 语句中出现的字段,必须是在group by后面出现的字段或者是聚组函数。
例:select a,b,sum(c)
from table
where a > 0
group by a,b
其中c处在聚组函数中,这样是正确的。
from BG_QSCL
where scbj='0' and clsx=(select max(clsx) from BG_QSCL group by bh)
order by clsj desc;
select bh,bt,zw,fj,clr,clrdw,clsj,clbj,clyj,czbj,scbj,clsx
from BG_QSCL
where scbj='0' and clsx in (select max(clsx) from BG_QSCL group by bh)
order by clsj desc;