public float[] GetSumAssignedResourceByFYandDep(long fiscalYearId, long departmentId)
{
/*
ICriteria criteria = NHibernateSessionManager.Instance.GetSession().CreateCriteria(typeof(ResourceAssign), "ra")
.Add(Expression.Eq("ra.TargetFiscalYear.Id", fiscalYearId))
.Add(Expression.Eq("ra.TargetMemberResource.Team.Department.Id", departmentId));
IList o = criteria.SetProjection(Projections.Sum("Month10")).List();
*/
StringBuilder sbSQL = new StringBuilder("SELECT ");
sbSQL.Append("SUM(MANMONTH_10) AS s1, SUM(MANMONTH_11) AS s2, ");
sbSQL.Append("SUM(MANMONTH_12) AS s3, SUM(MANMONTH_01) AS s4, ");
sbSQL.Append("SUM(MANMONTH_02) AS s5, SUM(MANMONTH_03) AS s6, ");
sbSQL.Append("SUM(MANMONTH_04) AS s7, SUM(MANMONTH_05) AS s8, ");
sbSQL.Append("SUM(MANMONTH_06) AS s9, SUM(MANMONTH_07) AS s10, ");
sbSQL.Append("SUM(MANMONTH_08) AS s11, SUM(MANMONTH_09) AS s12");
sbSQL.Append(" FROM RESOURCE_ASSIGN INNER JOIN MEMBERRESOURCE ON RESOURCE_ASSIGN.FK_MEMBERSOURCE_ID = MEMBERRESOURCE.MEMBERRESOURCE_ID");
sbSQL.Append(" INNER JOIN TEAM ON MEMBERRESOURCE.FK_TEAM_ID = TEAM.TEAM_ID");
sbSQL.Append(" WHERE (RESOURCE_ASSIGN.FK_FISCAL_YEAR_ID =:fyid) AND (TEAM.FK_DIVISION_ID =:depid)");
IQuery sqlQuery = NHibernateSessionManager.Instance.GetSession().CreateSQLQuery(sbSQL.ToString())
.AddScalar("s1", NHibernateUtil.Single)
.AddScalar("s2", NHibernateUtil.Single)
.AddScalar("s3", NHibernateUtil.Single)
.AddScalar("s4", NHibernateUtil.Single)
.AddScalar("s5", NHibernateUtil.Single)
.AddScalar("s6", NHibernateUtil.Single)
.AddScalar("s7", NHibernateUtil.Single)
.AddScalar("s8", NHibernateUtil.Single)
.AddScalar("s9", NHibernateUtil.Single)
.AddScalar("s10", NHibernateUtil.Single)
.AddScalar("s11", NHibernateUtil.Single)
.AddScalar("s12", NHibernateUtil.Single)
.SetInt64("fyid", fiscalYearId)
.SetInt64("depid", departmentId);
object[] os = (object[])(sqlQuery.UniqueResult() ?? new float[12]);
float[] f = new float[12] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (int j = 0; j
分享到:
相关推荐
Hibernate 的 createSQLQuery 的几种用法 Hibernate 的 createSQLQuery 是 Hibernate 框架中的一种强大且灵活的查询机制,它允许开发者使用原生 SQL 语句来查询数据库。下面是 createSQLQuery 的几种常见用法: 一...
Hibernate 中的 createQuery 和 createSqlQuery 区别详解 在 Hibernate 中,createQuery 和 createSqlQuery 是两个常用的查询方法,但是它们之间存在着一些关键的区别。了解这两个方法的差异对于正确地使用 ...
在Hibernate中,你可以通过`Session`对象的`createSQLQuery`方法创建一个SQL查询。例如: ```java Query query = session.createSQLQuery("select * from t_user usr"); ``` 执行上述代码后,Hibernate将会执行...
在 Hibernate 中,使用 SQLQuery 可以执行 Native SQL 查询,控制查询的执行是通过 SQLQuery 接口进行的,通过执行 Session.createSQLQuery() 获取这个接口。下面将详细介绍如何使用这个 API 进行查询。 标量查询...
在使用Hibernate进行数据查询时,我们常常会遇到两种方式来构造查询:`createQuery`和`createSQLQuery`。这两种方法都是Hibernate提供的,但它们在功能和使用上有所不同。 `createQuery`是基于Hibernate Query ...
在IT行业中,数据库管理和数据操作是至关重要的环节。Oracle数据库作为企业级的主流数据库系统,提供了丰富的存储过程和函数功能,以实现复杂的数据处理逻辑。而Hibernate作为一种流行的Java持久化框架,它允许...
Hibernate 提供了多种方式来执行原生 SQL 语句,其中之一是使用 `Session.createSQLQuery()` 方法,该方法返回一个 `SQLQuery` 对象,该对象提供了执行原生 SQL 语句的方法。 例如,我们可以使用以下代码来执行一个...
首先,创建SQLQuery实例是通过Session对象的createSQLQuery()方法完成的。例如: ```java List<Cat> cats = sess.createSQLQuery("select * from cats").addEntity(Cat.class).list(); ``` 上述代码会执行一个简单...
Query 对象可以通过 Session 对象的 createSQLQuery() 或 createQuery() 方法创建,例如: ```java Session session = sf.openSession(); Query query = session.createSQLQuery("select * from Tree t where pid in...
要执行本地SQL查询,首先需要通过Session对象的createSQLQuery()方法创建SQLQuery实例。例如: ```java List<Cat> cats = sess.createSQLQuery("select * from cats").addEntity(Cat.class).list(); ``` 这段...
3. **使用`createSQLQuery`方法**:这是更灵活的方式,可以直接在`Session`上创建`SQLQuery`对象来执行存储过程: ```java Session session = HibernateSessionFactory.getSession(); SQLQuery query = session....
1. **Session.createSQLQuery()**: 这是最常见的方法,通过SessionFactory的openSession()创建Session实例,然后调用createSQLQuery()方法,传入SQL语句。例如: ```java Session session = sessionFactory....
Hibernate提供`Session`接口的`createSQLQuery()`方法来创建一个`SQLQuery`对象,用于执行原生的SQL查询。例如,以下代码展示了如何通过Native SQL获取`guestbook`表的所有记录,并打印结果: ```java ...
Hibernate3通过Query对象的createSQLQuery方法提供对存储过程的调用支持。它允许我们编写原生的SQL语句,包括调用存储过程,然后映射结果到Java对象。 三、具体步骤 1. **创建SQL查询** 使用Session的...
Hibernate的`Session`接口提供了`createSQLQuery()`方法,允许我们直接编写SQL语句。例如: ```java Session session = sessionFactory.openSession(); SQLQuery query = session.createSQLQuery("SELECT * FROM...
通过`Session`对象的`createSQLQuery`方法,我们可以创建一个`SQLQuery`实例,然后设置SQL语句: ```java Session session = HibernateUtil.getSessionFactory().openSession(); SQLQuery sqlQuery = session....
在Hibernate中,Session对象提供了createSQLQuery()方法来创建SQLQuery实例。你可以通过这个实例设置SQL查询语句,比如: ```java Session session = HibernateUtil.getSessionFactory().openSession(); SQLQuery ...
在实现过程中,需要注意的是,由于Hibernate主要设计用于处理对象,所以调用存储过程时需要使用`createSQLQuery`而不是`createQuery`。此外,存储过程的调用格式通常为`CALL procedure_name()`。 总结来说,这篇...