監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢(xún)管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶(hù)案例 | 在線試用
X 關(guān)閉

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

申請(qǐng)免費(fèi)試用、咨詢(xún)電話:400-8352-114


分析如下:

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

首先我們來(lái)看一下判斷某段日期內(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:開(kāi)始日期}
and LessonDegree.DateAndTime >= {@EndDate:結(jié)束日期}

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

查詢(xún)某學(xué)員在某時(shí)間內(nèi)是否交過(guò)某費(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 指明需要查詢(xún)的收費(fèi)項(xiàng)編號(hào),Bill.DateAndTime > #2012-6-1#,Bill.DateAndTime > #2012-9-1#控制交費(fèi)的時(shí)間范圍,這是ACCESS語(yǔ)法,MS SQL需要將#號(hào)替換成’號(hào)即可。Bill.StudentID = 201300001表示查詢(xún)的學(xué)員學(xué)號(hào)。

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

Select
StudentID as 學(xué)號(hào),
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:開(kāi)始日期}
and LessonDegree.DateAndTime >= {@EndDate:結(jié)束日期}

) as tb
where Num > 0

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


(把以上代碼粘貼到《泛普培訓(xùn)學(xué)校管理軟件》查詢(xún)管理里,可直接使用)
發(fā)布:2007-03-30 09:49    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章: