- 浏览: 69520 次
- 性别:
- 来自: 天津
文章分类
最新评论
1.错误的sql语句:此sql语句报错信息是:group by 后面的标识符无效(字段名无效)
错误原因:因为使用了子查询,而group by后面是子查询的别名,所以无效。
先后顺序:1.where条件 , 2分组,3.集合函数(或者子查询),4.having筛选
反推理解:由于用了sum集合函数,所以子查询报错了,因此说明集合函数和子查询是同一个档次的(同时执行)
注意:查询中的执行步骤:先分组,在聚合,最后筛选。。。(where ,分组,集合函数,筛选)
select
t1.fund_id,
(select name from T_PUBMOFDEPT where id=t.zg_dept_id) DEPT_NAME,
(select name from t_pubagency where id=t.agency_id) AGENCY_NAME,
t.annual,
t.item_name,
(select name from T_PUBBDGSOURCE where id=t1.bdgsrc_id) BDGSRC_NAME,
(select name from T_PUBBGTSOURCE where id=t1.bgtsrc_id) BGTSRC_NAME,
(select name from T_PUBFUNDTYPE where id=t1.fundtype_id) FUNDTYPE_NAME,
(select name from t_pubexpfunc where id=t.expfunc_id) EXPFUNC_NAME,
sum(t1.amount) amount,
(select BGT_FILE_NO from TB_BGT_DEPT_BGTFILE where BGT_FILE_ID=t.bgt_file) BGT_FILE,
t.super_rev_file,
t.rev_file,
(select name from T_PUBFUNDCLASS where id=(select FUNDCLASS_ID from tb_bgt_item where ITEM_ID=t.item_id)) FUNDCLASS_NAME,
(select name from T_PUBEXPECONORMIC where id=(select eco_id from tb_bgt_fund where id=t1.fund_id)) ECO_NAME,
(select name from T_PUBPROTYPE where id=(select PROTYPE_ID from tb_bgt_item where ITEM_ID=t.item_id)) PROTYPE_NAME,
t.sn,
(select name from T_PUB_COUNTY_DISP where id=t.county_disp_id) COUNTY_DISP_NAME,
(select name from T_PUBBASESVR where id=t.basesvr_id) BASESVR_NAME,
t.ANNOTATION
from tb_bgt_item_info t
left join TB_BGT_ITEM_AMOUNT_SUB t1
on t.ITEM_ID=t1.item_ls_id
where 1=1
and t.annual=2016
group by fund_id,DEPT_NAME,AGENCY_NAME,item_name, BDGSRC_NAME,BGTSRC_NAME,FUNDTYPE_NAME,EXPFUNC_NAME,
BGT_FILE,super_rev_file,rev_file,FUNDCLASS_NAME,ECO_NAME, PROTYPE_NAME,sn,COUNTY_DISP_NAME,BASESVR_NAME,ANNOTATION
from tb_bgt_item_info t
left join TB_BGT_ITEM_AMOUNT_SUB t1
on t.ITEM_ID=t1.item_ls_id
where 1=1
and t.annual=2016
group by fund_id,DEPT_NAME,AGENCY_NAME,item_name, BDGSRC_NAME,BGTSRC_NAME,FUNDTYPE_NAME,EXPFUNC_NAME,
BGT_FILE,super_rev_file,rev_file,FUNDCLASS_NAME,ECO_NAME, PROTYPE_NAME,sn,COUNTY_DISP_NAME,BASESVR_NAME,ANNOTATION
2.正确的sql语句:
修改过程:现在group by后面不是子查询的别名了,而是子查询里面的表的某个字段
注意:还添加了CKLW字段,这个字段没写在group by后面竟然没报错
没报错的原因:因为这一行里面有REV_FILE 字段
select
case when t.REV_FILE is not null then '允许' else '不允许' end IS_CKLW,
t1.fund_id,
(select name from T_PUBMOFDEPT where id=t.zg_dept_id) DEPT_NAME,
(select name from t_pubagency where id=t.agency_id) AGENCY_NAME,
t.annual,
t.item_name,
(select name from T_PUBBDGSOURCE where id=t1.bdgsrc_id) BDGSRC_NAME,
(select name from T_PUBBGTSOURCE where id=t1.bgtsrc_id) BGTSRC_NAME,
(select name from T_PUBFUNDTYPE where id=t1.fundtype_id) FUNDTYPE_NAME,
(select name from t_pubexpfunc where id=t.expfunc_id) EXPFUNC_NAME,
sum(t1.amount) amount,
(select BGT_FILE_NO from TB_BGT_DEPT_BGTFILE where BGT_FILE_ID=t.bgt_file) BGT_FILE,
t.super_rev_file,
t.rev_file,
(select name from T_PUBFUNDCLASS where id=(select FUNDCLASS_ID from tb_bgt_item where ITEM_ID=t.item_id)) FUNDCLASS_NAME,
(select name from T_PUBEXPECONORMIC where id=(select eco_id from tb_bgt_fund where id=t1.fund_id)) ECO_NAME,
(select name from T_PUBPROTYPE where id=(select PROTYPE_ID from tb_bgt_item where ITEM_ID=t.item_id)) PROTYPE_NAME,
t.sn,
(select name from T_PUB_COUNTY_DISP where id=t.county_disp_id) COUNTY_DISP_NAME,
(select name from T_PUBBASESVR where id=t.basesvr_id) BASESVR_NAME,
case when t.REV_FILE is not null then '允许' else '不允许' end IS_CKLW,
t1.fund_id,
(select name from T_PUBMOFDEPT where id=t.zg_dept_id) DEPT_NAME,
(select name from t_pubagency where id=t.agency_id) AGENCY_NAME,
t.annual,
t.item_name,
(select name from T_PUBBDGSOURCE where id=t1.bdgsrc_id) BDGSRC_NAME,
(select name from T_PUBBGTSOURCE where id=t1.bgtsrc_id) BGTSRC_NAME,
(select name from T_PUBFUNDTYPE where id=t1.fundtype_id) FUNDTYPE_NAME,
(select name from t_pubexpfunc where id=t.expfunc_id) EXPFUNC_NAME,
sum(t1.amount) amount,
(select BGT_FILE_NO from TB_BGT_DEPT_BGTFILE where BGT_FILE_ID=t.bgt_file) BGT_FILE,
t.super_rev_file,
t.rev_file,
(select name from T_PUBFUNDCLASS where id=(select FUNDCLASS_ID from tb_bgt_item where ITEM_ID=t.item_id)) FUNDCLASS_NAME,
(select name from T_PUBEXPECONORMIC where id=(select eco_id from tb_bgt_fund where id=t1.fund_id)) ECO_NAME,
(select name from T_PUBPROTYPE where id=(select PROTYPE_ID from tb_bgt_item where ITEM_ID=t.item_id)) PROTYPE_NAME,
t.sn,
(select name from T_PUB_COUNTY_DISP where id=t.county_disp_id) COUNTY_DISP_NAME,
(select name from T_PUBBASESVR where id=t.basesvr_id) BASESVR_NAME,
t.ANNOTATION
from tb_bgt_item_info t
left join TB_BGT_ITEM_AMOUNT_SUB t1
on t.ITEM_ID=t1.item_ls_id
where 1=1
and t.annual=2016
group by fund_id,t.zg_dept_id,t.agency_id,annual,item_name,t1.bdgsrc_id,t1.bgtsrc_id,t1.fundtype_id,t.expfunc_id,
t.bgt_file,super_rev_file,rev_file,t.item_id,t1.fund_id,sn,t.county_disp_id,t.basesvr_id,ANNOTATION
from tb_bgt_item_info t
left join TB_BGT_ITEM_AMOUNT_SUB t1
on t.ITEM_ID=t1.item_ls_id
where 1=1
and t.annual=2016
group by fund_id,t.zg_dept_id,t.agency_id,annual,item_name,t1.bdgsrc_id,t1.bgtsrc_id,t1.fundtype_id,t.expfunc_id,
t.bgt_file,super_rev_file,rev_file,t.item_id,t1.fund_id,sn,t.county_disp_id,t.basesvr_id,ANNOTATION
发表评论
-
oralce定时器
2017-12-07 14:48 3271.在jobs下面,有个‘动态监控定时器’2.在DBMS_ ... -
对比两个sql的查询结果是否一样
2017-11-06 13:49 1720以第一个sql为标准,如果查询出两个sql的结果有不一样的地 ... -
+号是左右连接
2017-10-30 10:08 278TB_BGT_INFO.BGT_ID = TB_QUOTA_ ... -
创建用户
2017-09-21 15:57 254---创建用户 -- Create the user cr ... -
程序中的事务
2017-09-19 10:20 5041. sql.append("begin &q ... -
merge用法
2017-08-08 10:40 354merge into tb_car_vehpartsprice ... -
exists 是否存在
2017-07-08 13:04 436链接:http://www.cnblogs.com/net ... -
insert的时候select,update的时候create。exists相当于in
2016-07-19 15:28 348insert into tp_menu(MENU_ID,m ... -
sql中的回滚,回车
2016-06-01 09:55 409sql11.append("declare be ... -
insert blob类型的数据
2016-05-16 14:56 561相关连接1:http://blog.csdn.net/cd ... -
广西非税:从创建表空间到导入包
2016-03-25 16:19 269create tablespace gxfs datafi ... -
根据外键找表
2016-03-07 17:18 257select * from user_cons_colum ... -
修改表空间大小
2016-03-07 15:28 545--修改表空间大小alter database da ... -
oracle的ROW_NUMBER() OVER函数的基本用法
2016-02-17 09:36 672转自:http://www.cnblogs.com/ic ... -
where与having的区别
2016-02-05 09:13 501注意:查询中的执行步骤:先分组,在聚合,最后筛选。。。(w ... -
oralce各种练习题
2016-02-05 09:12 689ORACLE课堂练习:----1.员工表create ta ... -
表空间、权限、导入导出,连起来就是一套。导出空表问题
2016-02-03 13:35 6871.这是在查表所有表空 ... -
只安装plsql不安装oralce
2016-02-03 09:26 702注意:只安装plsql不安装oracle,貌似不能imp, ... -
dblinks
2016-01-26 10:35 536第一个人: 1.创建dblink语法: CREATE ... -
网:exp\imp 导入导出命令使用(相关关键字)
2016-01-11 10:31 589使用方法 用exp命令导 ...
相关推荐
关于 group by的详解,,group by的用法
group by的使用,order by的使用,以及 group by + order by的一起使用。
1、 如果使用 groupby table转换为流的时候只能用toRetractDstream val rDstream: DataStream[(Boolean, (String, Long))] = table.toRetractStream[(String,Long)] 2、 toRetractDstream 得到的第一个boolean型...
order by 、group by 、having的用法区别 order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 group by 从英文里理解就是分组。必须有“聚合函数”来...
SQL中group by的详细用法
SQL GROUP BY 语句 SQL GROUP BY 语句
sqlserver+group by分组查询分页存储过程
mongo group by mapreduce操作指导!
SQL GROUP BY 语法
group by 就是依据by 后面的规则对数据分组,所谓的分组就是讲数据集划分成若干个’小组’,针对若干个小组做处理。 2.语法规则 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE ...
一、如何理解group by 后 带 rollup 子句所产生的效果 group by 后 带 rollup 子句的功能可以理解为:先按一定的规则产生多种分组,然后按各种分组统计数据(至于统计出的数据是求和还是最大值还是平均值等这就取决...
废话不多说了,直接给大家贴代码了,具体代码如下所示: public class Person { public string FirstName{set;get;} public string LastName{set;get;} public Person(){} public Person(string firstName, ...
GROUP BY子句要和聚合函数配合使用才能完成分组查询,在SELECT查询的字段中,如果没有使用聚合函数就必须出现在ORDER BY子句中。分组查询后,查询结果为一个或多个列分组后的结果集。 GROUP BY语法 SELECT 列名, ...
本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...
group by Suzuki group by suzuki group by Suzuki group by suzuki
mssql+group by 分页例子
Linq Grouping GroupBy 用法详解 Linq Grouping GroupBy 用法详解
一直模糊理解Group By。看了这个你就清晰多了。
MySQL数据库中group by语句与update语句的用法研究.pdf
Lucene多个group by字段实现,字段个数动态。