1.最近工程中需要按照年,月,季度对一些记录进行统计。年,月的统计很快解决了,但是在
按照季度统计时,遇到了一些问题,不过,最终还是解决了。
2.
(1)按照年统计。
String sqlYear ="select cast(sum(money) as float),year(loadTime),count(book) from LoadEbook group by year(loadTime)";
def loadYearEbook = LoadEbook.executeQuery(sqlYear)
打印查询到的结果,发现money的小数位不对,money定义的是float类型,例如查询结果是
21.78,但是打印出来的是
所以要将查询到的结果转换下,这里将sum(money)变成cast(sum(money) as float),再次打印查询结果,这次打印正确,结果如下:
(2)按照月统计
String sqlMonth ="select cast(sum(money) as float),month(loadTime),count(book) from LoadEbook group by month(loadTime)";
def loadMonthEbook = LoadEbook.executeQuery(sqlMonth)
与按照年查询一样。
(3)按照季度查询,本来也想按照和年,月查询的方式进行查询,刚开始是这么写的:
String sqlMonth ="select cast(sum(money) as float),quarter(loadTime),count(book) from LoadEbook group by quarter(loadTime)";
def loadMonthEbook = LoadEbook.executeQuery(sqlMonth)
但是会报错,报错如下:
上网查了下,HQL: The Hibernate Query Language,发现它的Expression中不包含quarter,所以不能使用quarter。没办法,只能再找其他办法了,上网又找了下,最后通过
case when end解决了。代码如下;
String sqlQuarter = "Select cast(sum(money) as float),case when month(loadTime) in (1,2,3) then '一季度' when month(loadTime) in (4,5,6) then '二季度' when month(loadTime) in (7,8,9) then '三季度' when month(loadTime) in (10,11,12) then '四季度' end ,count(book)"+
" from LoadEbook group by case when month(loadTime) in (1,2,3) then '一季度' when month(loadTime) in (4,5,6) then '二季度' when month(loadTime) in (7,8,9) then '三季度' when month(loadTime) in (10,11,12) then '四季度' end ";
def loadQuarterEbook = LoadEbook.executeQuery(sqlQuarter)
这次能够正确打印结果了。
上边就是按照年月季度查询的代码。
分享到:
相关推荐
Views 是 Grails 应用程序中的用户界面部分,通常使用 Groovy Server Pages (GSP) 文件编写。GSP 结合了 HTML、CSS 和 JavaScript 以及 Groovy 语法,允许动态生成页面内容。 **Services** Services 是可重用的...
以下是一个详细的过程,帮助初学者理解如何在Grails中实现分页。 首先,让我们从控制器开始。在Grails中,控制器是业务逻辑和视图之间的桥梁。为了实现分页,你需要在控制器中定义一个方法,例如`processPage`,它...
- **Hello World示例**:在新创建的应用中,你可以通过创建一个简单的控制器和视图来实现经典的“Hello, World!”程序,体验Grails的快速开发能力。 3. **使用IDE** Grails支持多种集成开发环境(IDE),如...
在Grails中,数据查询是核心功能之一,允许开发者高效地与数据库交互。 ### 1. GORM (Grails Object Relational Mapping) GORM是Grails的核心组件,提供了一种简单的方式来处理数据持久化。它是一个ORM(对象关系...
验证是Web开发中不可或缺的一部分,Grails通过声明约束和验证约束来实现。它支持客户端验证,使得可以在用户提交表单之前校验数据。Grails的国际化支持非常好,开发者可以通过简单的配置来为不同的语言环境定制应用...
在Grails中,我们可以利用AJAX技术实现这种交互,AJAX即异步JavaScript和XML,它允许页面在不刷新整个页面的情况下与服务器交换数据并局部更新页面内容。这正是实现联动效果的关键,因为它能让用户体验更加流畅,...
《Grails 1.1 中文文档》是一个非常宝贵的资源,尤其对于国内的开发者来说,由于Grails在中文社区中的资料相对较少,这份文档的价值不言而喻。Grails是一个基于Groovy语言的开源Web应用框架,它借鉴了Ruby on Rails...
1. **模型(Model)**: 在Grails中,模型通常由Domain Classes表示,它们是持久化的实体,与数据库表对应。Domain Classes使用Groovy的元编程特性,如属性验证和动态方法,提供数据验证和业务逻辑。 2. **视图...
- Grails版本信息可以在项目的`BuildConfig.groovy`文件中找到。 **文档引擎** - 提供了文档生成工具,帮助开发者快速生成API文档。 **依赖解析** - Grails使用Ivy作为其依赖管理系统。 - 支持配置依赖关系,包括...
在Grails中,领域模型是应用程序的核心,它代表了业务数据和逻辑。通过定义Groovy类并使用Grails的GORM(Grails Object Relational Mapping)来与数据库交互,可以轻松实现数据持久化。 4. **控制器(Controllers...
2. **View**:Grails使用GSP(Groovy Server Pages)作为视图,类似于JSP,但更灵活,允许在页面中直接嵌入Groovy代码,实现动态内容的生成。 3. **Controller**:控制器负责处理用户请求,管理业务逻辑,接收表单...
以下是对Grails中上传和下载操作的深入解析,包括其实现机制、代码示例及注意事项。 ### 文件上传 #### 上传原理 在Grails中,文件上传主要依赖于Spring框架提供的`MultipartHttpServletRequest`接口,该接口用于...
Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...
FCKEditor是一款著名的在线文本编辑器,grails-fckeditor-0.9.5插件则是将其集成到Grails应用中的解决方案。以下是关键点: 1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认...
至于"ChainDropDown"这个文件名,很可能是一个示例或者组件,用于演示如何在Grails中实现级联下拉框。级联下拉框通常在需要关联选择的情况下使用,比如国家/地区-城市的选择,当用户选择了一个国家,下拉框会自动...
Grails 最新的 v1.1版的中文文档,chm格式,Grails是一套快速开发Web应用的开源框架,基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,能为大家带来超高效率的一站式框架。
Grails框架是MVC(Model-View-Controller)结构的实现,它包含以下几个核心组件: - **Model**: 代表应用程序的数据模型,通常由领域类(Domain Classes)来表示,这些类是Groovy对象,具有ORM(对象关系映射)功能...
8. **持续集成与自动化测试**:Grails 支持单元测试和集成测试,学习如何编写测试用例,并利用 Jenkins 或 Travis CI 实现持续集成。 **文档资源** 提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip...