`
远去的渡口
  • 浏览: 472824 次
  • 性别: Icon_minigender_2
  • 来自: 上海转北京
社区版块
存档分类
最新评论

记录今天遇到的问题group by与ListEvent的处理方式

    博客分类:
  • flex
阅读更多

今天遇到了一个奇怪的问题,Oracle中,在PLSQL中写的group by 带参数的sql语句没有问题,但是在java程序中老是报错,异常是“not a group by expression”

我的语句是:

 

select to_char(day,'yyyy-mm-dd') as day, sum(card_cost) as card_cost,
sum(added_number) as added_number from report_member_added 
where merchant_id='01058121104'  and
  to_char(day,'yyyy-mm-dd') between '2010-10-01' and '2010-10-26'   
  group by to_char(day,'yyyy-mm-dd')  order by day

 

在group by里面传参数是为了做两种统计,一种是按日,一种是按月。

我不想分开写,感觉一个语句能搞定的统计,没必要写两个方法。

 

我的ibatis里面是这样写的:

<select id="queryMemberAdd" parameterClass="java.util.HashMap" resultMap="sumMember">
select to_char(day,#queryFormat#) as day, sum(card_cost) as card_cost,sum(added_number) as added_number from report_member_added 
where merchant_id=#merchantId#  and  to_char(day,'yyyy-mm-dd') between #startDate# and #endDate#
<dynamic>
<isNotEmpty prepend="and" property="stroeId">
store_id=#storeId#
</isNotEmpty>
</dynamic>
group by to_char(day,#queryFormat#)  order by day 
</select>

 

从控制台可以看到参数已经传过去了,并且我将生成的预编译sql copy到PLSQL,再把参数传进去,完全没有问题。

 

后来尝试了很多方法,总算找到一种解决方案:

将ibatis里面的语句改一下,因为考虑到group by 里面传的是字符串,所以用$$传。

也就是:

<select id="queryMemberAdd" parameterClass="java.util.HashMap" resultMap="sumMember">
select to_char(day,$queryFormat$) as day, sum(card_cost) as card_cost,sum(added_number) as added_number from report_member_added 
where merchant_id=#merchantId#  and  to_char(day,'yyyy-mm-dd') between #startDate# and #endDate#
<dynamic>
<isNotEmpty prepend="and" property="stroeId">
store_id=#storeId#
</isNotEmpty>
</dynamic>
group by to_char(day,$queryFormat$)  order by day 
</select>

 但是发现生成的sql里面参数应该用''括起来的,所以我们需要在传参数的地方,比如:

String queryFormat="'yyyy-MM-dd'" 这样写。 “”里面再加上''。

 

 

另一个问题,就是flex中DataGrid列表里面,双击一行,得到其中的一个字段的值 。

调试了N久才找到,原来是用evt.itemRenderer.data.day;

	private function onDoubleClick(evt:ListEvent):void{
			var datagrid:DataGrid = evt.target as DataGrid;
			var secondCom:MemberAddReportDetail=new MemberAddReportDetail();
		     var date:String=evt.itemRenderer.data.day;
			 Alert.show("date="+date);
			CommonMethod.addNavigatorChild(new MemberAddReportDetail(),"门店新增会员报表",true);
		}

 

好了,今天就总结到这里了,也算是今天的一点收获。希望对需要的朋友有所帮助。

1
0
分享到:
评论

相关推荐

    mysql使用GROUP BY分组实现取前N条记录的方法

    本文实例讲述了mysql使用GROUP BY分组实现取前N条记录的方法。分享给大家供大家参考,具体如下: MySQL中GROUP BY分组取前N条记录实现 mysql分组,取记录 GROUP BY之后如何取每组的前两位下面我来讲述mysql中GROUP BY...

    group by + order by

    在实际应用中,经常需要同时使用 `GROUP BY` 和 `ORDER BY` 来处理数据。例如,在对数据进行分组后,可能还需要对每组内的数据进行排序。 - **基本语法**: ```sql SELECT column1, column2, ..., columnN FROM ...

    处理group by 查询速度慢的问题.docx

    ### 处理GROUP BY 查询速度慢的问题 在实际项目中,由于数据表的记录数量庞大,经常遇到查询速度缓慢的问题。本文将详细记录一次针对GROUP BY查询效率低下的排查及优化过程,希望能够对读者有所帮助。 #### 问题...

    处理group by 查询速度太慢的问题 数据量大.doc

    通过记录和优化过程,总结出一些有价值的经验,希望能够帮助读者解决类似的问题。 知识点1:Group By 查询的索引设置 在优化 Group By 查询时,仅对 Group By 字段设置索引是不够的。需要将聚合函数(如 min、max ...

    SQL中GROUP BY的用法

    在使用 GROUP BY 语句时,需要注意错误的处理,例如 NOT A GROUP BY EXPRESSION 的错误,可以通过使用聚合函数来解决。 GROUP BY 语句是 SQL 中的一种强大工具,经常与聚合函数一起使用,用于对数据进行分组和计算...

    C# 中的GroupBy的动态拼接问题及GroupBy用法介绍

    废话不多说了,直接给大家贴代码了,具体代码如下所示: public class Person { public string FirstName{set;get;} public string LastName{set;...List&lt;Person&gt; personList=new List(); personList.Add

    MySQL数据库中group by语句与update语句的用法研究.pdf

    MySQL 数据库中 group by 语句与 update 语句的用法研究 本论文对 MySQL 数据库中的 group by 语句和 update 语句进行了深入研究,讨论了这些语句在数据库查询和修改中的应用,并给出了具体的解决方案。 一、MySQL...

    sqlserver+group by分组查询分页存储过程

    根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...

    mysql分组取每组前几条记录(排名) 附group by与order by的研究

    –按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b ...

    order by 、group by 、having的用法

    在SQL查询中,`ORDER BY`、`GROUP BY` 和 `HAVING` 是三个非常重要的子句,它们分别用于不同的数据处理操作。 1. **ORDER BY** 子句: - `ORDER BY` 用于对查询结果进行排序,按照指定的字段进行升序或降序排列。...

    Group_by详解_完美例句

    聚合函数在`GROUP BY`语句中起到关键作用,它们处理每个组内的多值问题。例如,`COUNT()`计算记录数,`SUM()`求和,`AVG()`计算平均值,`MAX()`和`MIN()`找出最大值和最小值。这些函数将一组数据转换为单个值,使得...

    清晰解读GroupBy

    ### 清晰解读Group By:理解SQL中的分组与聚合 在数据库查询语言SQL中,`GROUP BY`是一个非常重要的概念,它可以帮助我们对数据进行分组并执行聚合操作,从而得出更有价值的信息。本文将从`GROUP BY`的基础概念出发...

    on与where、group by的用法

    - **基本语法**:`GROUP BY`的基本使用方式如下: ```sql SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; ``` 这将统计`table_name`中`column_name`的不同值的数量。 - **HAVING子句**...

    Lucene group by ,分组实现

    "Lucene group by" 指的就是在 Lucene 中实现基于特定字段的分组操作,类似于 SQL 中的 GROUP BY 子句。这使得用户能够按类别聚合文档,例如,根据作者、日期或其他分类标准来查看搜索结果。 在 Lucene 中,分组...

    group by的详解

    5. **子查询与连接**:`GROUP BY`可以与子查询和表连接一起使用,以处理更复杂的数据聚合需求。在这个例子中,`LEFT JOIN`用于连接`c_orderline2`表和`c_bpartner`表,以获取供应商信息。 综上所述,`GROUP BY`和`...

    mysql获取group by总记录行数的方法

    在升级MySQL到5.7后遇到的`GROUP BY`查询问题,通常与新的严格模式有关,理解这些变化并相应地调整代码是解决问题的关键。 总之,通过`SQL_CALC_FOUND_ROWS`和`FOUND_ROWS()`的结合使用,可以有效地在`GROUP BY`...

    Flink之 group by

    1、 如果使用 groupby table转换为流的时候只能用toRetractDstream val rDstream: DataStream[(Boolean, (String, Long))] = table.toRetractStream[(String,Long)] 2、 toRetractDstream 得到的第一个boolean型...

    SQL GROUP BY 语句详解

    在处理大型数据集时,GROUP BY 与聚合函数(如 SUM、COUNT、AVG、MAX 和 MIN)一起使用,能够帮助我们汇总数据,找出特定条件下的总体趋势和统计信息。 GROUP BY 语句的基本语法如下: ```sql SELECT column_name,...

    mssql+group by 分页例子

    在标题和描述中提到的“mssql+group by 分页例子”是指在SQL Server(通常简称为mssql)中使用`GROUP BY`结合分页技术来处理大量数据的方法。这里我们将详细探讨这个主题,并给出实际的例子。 首先,`GROUP BY`子句...

    对DataFrame数据中的重复行,利用groupby累加合并的方法详解

    ### DataFrame 数据中的重复行处理:利用groupby进行累加合并详解 在数据分析过程中,经常会遇到包含重复行的数据集。这些重复行可能包含了重要的累积信息,简单地删除它们可能会导致信息丢失,进而影响分析结果的...

Global site tag (gtag.js) - Google Analytics