查询篇-统计某段时间内课程的收入情况

2013年07月21日 08:21
点击率:8204



Select
CourseName as 课程名称,
sum(Fee) as 费用
from
(
Select
Course.CourseID,
Course.CourseName,
Bill.DateAndTime,
(BillItem.UnitPrice * BillItem.Amount + BillItem.Favorable) as Fee
from Bill,BillItem,Course
where Bill.BillID = BillItem.BillID
and BillItem.ProductID = Course.CourseID
and BillItem.ProductType = 1
and Bill.BillTypeID = 1
Union
Select
Course.CourseID,
Course.CourseName,
Bill.DateAndTime,
-(BillItem.UnitPrice * BillItem.Amount + BillItem.Favorable) as Fee
from Bill,BillItem,Course
where Bill.BillID = BillItem.BillID
and BillItem.ProductID = Course.CourseID
and BillItem.ProductType = 1
and Bill.BillTypeID = 0
Union
Select
Course.CourseID,
Course.CourseName,
Change.DateAndTime,
-IntoAccount as Fee
from Change,StuClass,BillItem,Course
where Change.StuClassID = StuClass.StuClassID
and StuClass.BillItemID = BillItem.BillItemID
and BillItem.ProductID = Course.CourseID
) as tb
where
DateAndTime >= {@StartDate:开始日期}
and DateAndTime <= {@EndDate:结束日期}
group by CourseName

此查询精度非常高,分为三个子查询,最后合并而成。
首先查询出消费单销售出的课程信息,
其次查询出消费单退货的课程信息,
最后查询出办理异动退学的课程信息。
公式:
消费单销售金额 - 消费单退货金额 - 异动退学的课程金额 = 实际课程总金额



(把以上代码粘贴到《麦田培训学校管理软件》查询管理里,可直接使用)