SQL Artisan多表查询和统计

2016-01-29 16:00 3 1 收藏

SQL Artisan多表查询和统计,SQL Artisan多表查询和统计

【 tulaoshi.com - SQLServer 】

编写基于几个表的关联查询和统计的确是件烦琐的事情,由于基于字符的描述很多信息难以抽取出来共用,当其他地方需要这种情况的时候又必须重写。为了避免这情况SQL Artisan引用了视图对象,通过视图对象描述数据查询的信息;视图对象有一个最大的好处就是继承,可以从一个已经有的对象(实体对象或视图对象)继承下来扩展新的查询功能描述。实际应用中你可以建立一个基础统计视图对象,然后根据情况派生出具体的统计对象(如:根据不同信息分组,显示那些字段信息等).

下面是一些简单例程代码:

      订单销售金额统计基础视图对象

    /// <summary

    /// 建立一个简单的订单销售金额统计类

    /// </summary

    [TableMap("", TableType.View)]

    public class OrderStat:HFSoft.Data.ITableView

    {

        #region ITableView 成员

        public virtual Table GetTable()

        {

            // TODO:  添加OrderV.GetTable 实现

            return DBMapping.Orders.INNER(DBMapping.Employees, DBMapping.Employees.EmployeeID)& DBMapping.Orders.INNER(DBMapping.OrderDetails, DBMapping.Orders.OrderID)& DBMapping.OrderDetails.INNER(DBMapping.Products, DBMapping.Products.ProductID);

        }

        private Double mTotalize;

        [StatColumn("Quantity*[Order Details].UnitPrice*(1-Discount)", StatType.Sum)]

        public Double Totalize

        {

            get

            {

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

                return mTotalize;

            }

            set

            {

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

                mTotalize = value;

            }

        }

        #endregion

}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

按雇员分组统计情况继承实现

    /// <summary

    /// 按雇员进行分组统计

    /// </summary

    [TableMap("", TableType.View)]

    public class EmployeeTotal:OrderStat

    {

        private int mEmployeeID;

        [ViewColumn("Employees.EmployeeID")]

        public int EmployeeID

        {

            get

            {

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

                return mEmployeeID;

            }

            set

            {

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

                mEmployeeID = value;

            }

        }

        private str

来源:http://www.tulaoshi.com/n/20160129/1497036.html

延伸阅读
标签: SQLServer
  分页存储过程代码如下: ALTER PROCEDURE [dbo].[Task_SelectPagedAndSorted] (     @ProjectID uniqueidentifier,     @ProjectAreaID uniqueidentifier,     @DepartmentID uniqueidentifier,     @ChiefID uniqueidentifier,     @State nvarchar(32), ...
SQL语言查询基础:连接查询  通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。  在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操...
连接可以在Select 语句的FROM子句或Where子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与Where子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。 SQL-92标准所定义的FROM子句的连接语法格式为: FROM join_table join_type join_table [ON (join_condition)] ...
标签: MySQL mysql数据库
2006-10-8 表数据:tab1 id    name  num A     a         9 A     b       11 B     f         7 B     g  ...
由于公司项目的需要,我对Hibernate对多表关联查询研究了一下,现总结如下,供朋友参考。 一、 Hibernate简介Hibernate是一个JDO工具。它的工作原理是通过文件(一般有两种:xml文件和properties文件)把值对象和数据库表之间建立起一个映射关系。这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的...

经验教程

12

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部