操作篇-判斷明天哪些學(xué)員在校就餐(即交了餐費(fèi))

2013年07月21日 08:10
點(diǎn)擊率:9235

分析如下:

首先要計算出明天上課學(xué)員信息
然后才能判斷是否應(yīng)當(dāng)在校吃飯

首先我們來看一下判斷某段日期內(nèi)上課學(xué)員的代碼:

Select distinct
StuClass.StudentID,
StuClass.StudentName
from LessonDegree,StuClass
where
LessonDegree.ClassID = StuClass.ClassID
and StuClass.ScStateID in (1,2)
and StuClass.Lessons > StuClass.CourseProgress
and LessonDegree.DateAndTime >= {@StartDate:開始日期}
and LessonDegree.DateAndTime >= {@EndDate:結(jié)束日期}

這段代碼通過分析某段時間內(nèi)的排課信息,關(guān)聯(lián)學(xué)員選班信息,然后過濾重復(fù)數(shù)據(jù),來實現(xiàn)某段時間內(nèi)上課學(xué)員的推測。其中StuClass.ScStateID in (1,2)表示學(xué)員的選班狀態(tài)一定要處于正常狀態(tài),StuClass.Lessons > StuClass.CourseProgress表示學(xué)員所購買的課程并沒有上完,distinct過濾重復(fù)的數(shù)據(jù)。

查詢某學(xué)員在某時間內(nèi)是否交過某費(fèi)用代碼:

Select
count(*)
from BillItem,Bill
where
Bill.BillID = BillItem.BillID
and BillItem.ProductType = 2
and BillItem.ProductID = 18
and Bill.DateAndTime > #2012-6-1#
and Bill.DateAndTime < #2012-9-1#
and Bill.StudentID = 201300001

BillItem.ProductID 指明需要查詢的收費(fèi)項編號,Bill.DateAndTime > #2012-6-1#,Bill.DateAndTime > #2012-9-1#控制交費(fèi)的時間范圍,這是ACCESS語法,MS SQL需要將#號替換成’號即可。Bill.StudentID = 201300001表示查詢的學(xué)員學(xué)號。

我們將兩段代碼進(jìn)行整合:

Select
StudentID as 學(xué)號,
StudentName as 姓名

from

(
Select distinct
StuClass.StudentID,
StuClass.StudentName,

(
Select
count(*)
from BillItem,Bill
where
Bill.BillID = BillItem.BillID
and BillItem.ProductType = 2
and BillItem.ProductID = 18
and Bill.DateAndTime > #2012-6-1#
and Bill.DateAndTime < #2012-9-1#
and Bill.StudentID = StuClass.StudentID
) as Num

from LessonDegree,StuClass
where
LessonDegree.ClassID = StuClass.ClassID
and StuClass.ScStateID in (1,2)
and StuClass.Lessons > StuClass.CourseProgress
and LessonDegree.DateAndTime >= {@StartDate:開始日期}
and LessonDegree.DateAndTime >= {@EndDate:結(jié)束日期}

) as tb
where Num > 0

首先我們將“查詢某學(xué)員在某時間內(nèi)是否交過某費(fèi)用”的代碼做為一個子查詢加入到上課學(xué)員信息中,并且以一個虛擬列“Num”存在。然后我們再將整個查詢虛擬成一張表名稱為“tb”,最后查詢tb表,條件是Num大于0(表示至少交了一次午餐費(fèi)),這樣我們就能夠精準(zhǔn)的分析出明天需要在學(xué)校就餐的學(xué)員信息,為食堂人員提供了方便。


(把以上代碼粘貼到《麥田培訓(xùn)學(xué)校管理軟件》查詢管理里,可直接使用)