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
{
return mTotalize;
}
set
{
mTotalize = value;
}
}
#endregion
}
按雇员分组统计情况继承实现
/// <summary>
/// 按雇员进行分组统计
/// </summary>
[TableMap("", TableType.View)]
public class EmployeeTotal:OrderStat
{
private int mEmployeeID;
[ViewColumn("Employees.EmployeeID")]
public int EmployeeID
{
get
{
return mEmployeeID;
}
set
{
mEmployeeID = value;
}
}
private string mEmployeeName;
[ViewColumn("FirstName+LastName")]
public string EmployeeName
{
get
{
return mEmployeeName;
}
set
{
mEmployeeName = value;
}
}
}
按产品分组统计继承实现
/// <summary>
/// 按产品进行分组统计
/// </summary>
[TableMap("", TableType.View)]
public class ProductTotal : OrderStat
{
private int mProductID;
[ViewColumn("Products.ProductID")]
public int ProductID
{
get
{
return mProductID;
}
set
{
mProductID = value;
}
}
private string mProductName;
[ViewColumn("ProductName")]
public string ProductName
{
get
{
return mProductName;
}
set
{
mProductName = value;
}
}
}


















文章评论
共有 位CH网友发表了评论 查看完整内容