ورود

نسخه کامل مشاهده نسخه کامل : دانشجويان بيش از سه غيبت



hamidehsadat
21-05-2007, 14:42
من مي خواهم يك كويري انجام بدهم كه دانشجوياني كه بيشتر از سه غيبت دارند را نمايش بدهند من كدش را اين طور نوشته ام ولي يك مشكلي كه دارم اين است كه يك دانشجو ممكن است در چند كلاس شركت كرده باشداين كدي كه نوشتم دانشجويان با كد يكسان را پيدا مي كند ولي ممكن است كد كلاسشون با يكديگر فرق بكند
جدولHOSOR كد دانشجويي كه غيبت كرده است و تاريخ جلسه اي كه غيبت كرده است
SELECT tarikhgalaseh, COUNT( stid ) CountOfSNo, Stid
FROM hosor
GROUP BY tarikhgalaseh,Stid
HAVING COUNT( tarikhgalaseh ) >=3

ahmad1358
21-05-2007, 15:02
کد دانشجویی که شما در بانک تعریف کردید مگه تو هر کلاسی تغییر می کنه ؟

hamidehsadat
21-05-2007, 17:05
کد دانشجویی که شما در بانک تعریف کردید مگه تو هر کلاسی تغییر می کنه ؟منظورتان را متوجه نشدم ولي يك مثال ميزنم شايد متوجه بشويد .ببينيد يك دانشجو با كد1 در كلاس 1 ثبت نام كرده و همين دانشجو در كلاس ديگري مثلابه شماره2 ثبت نام ميكند و اين كدي كه من نوشتم دانشجويي با كد 1 در دو كلاس مختلفرا پيدا ميكندكه مثلا 3 تا غيبت داشته است ولي من نمي خواهم اين طوري باشد.ودر فرم حضو و غياب غيبت هاي دانشجويان وارد مي شودكه در جدول hosor ثبت مي شود و ثبت نام هم در جدول ثبت نام است كه فيلدها:كددانشجو-كد كلاس-كد استاد-كد درس

ahmad1358
22-05-2007, 07:47
منم همین موضوع رو گفتم
شما باید در مورد هر دانش آموز یک کد اختصاصی داشته باشید که در هر کلاسی که ثبت نام میکند تغیرر پیدا نکند
و به اختمال زیاد رو تجزیه و تحلیل بانکتون یکم مشکل دارین اگر یک دانشجو با stid یک در کلاس اول ثبت نام کرده و همین دانشجو با Stid دو در یک کلاس دیگه پس بانک شما مشکل داره چون هر دانشجو باید یک کد اختصاصی داشته باشه در کنار اون کد اختصاصی شما میتونین یه کد فرعی برای ثبت نام در کلاس های مختلف داشته باشین که این کد دوم به نظر من احتیاج نیست. حالا اگه یه دانشجو در چند کلاس هم غیبت داشته باشه با یک کد ذخیره میشه و خیلی راحت با همون query بالا تعداد غیبت هاش در میآد

hamidehsadat
22-05-2007, 09:47
نه اين طوري نيست شما اشتباه متوجه شديد اگر يك دانشجو با كد 1 در كلاس 1 ثبت نام مي كند ديگه براي ثبت نام در يك كلاس ديگه از همان كد 1 استفاده مي كنم لازم نيست براي اينكه در كلاس مختلف ثبت نام كنه كدهاي مختلفي بدهم
فيلدهاي جدول دانشجو:كددانشجو(كليد اصلي)-نام-نام خانوادگي
جدوا كلاس:كدكلاس-كد استاد-كددرس-
جدول ثبت نام: id (autoincrement -كد دانشجو(كليد خارجي)-كد كلاس -كد استاد-كد درس

hamidehsadat
23-05-2007, 09:29
من ميخواهم اگر دانشجويي در چند كلاس شركت كرده است غيبت هاي هر كلاس جداگانه نشان بده

as13851365
26-07-2007, 11:14
دوست عزیز من یه پروژه خوب برای این موضوع نوشتم و قرار است یه هفته دیگه تحویل استاد بدم

این یه برنامه دفتر نمره برای استاد است که استاد در هر درس تعدادی دانشجو دارد که ممکنه یکی در تمام درس های یک استاد باشه و یا هیچ درسی با استاد نداشته باشد

من توی این برنامه دوتا فرم برای ثبت نام دارم که اولی برای ثبت درس است و دومی برای ثبت دانشجو که در فرم ثبت درس هر درسی را اضافه می کنم و در فرم ثبت دانشجو هم دانشجویان در درس های مختلف ثبت نام می کنند

شما گفتید که حضور و غیاب می خواهید :
خوب من در بانک از جک بوکس استفاده کردم و برای هر درس هم تعداد این ها جداگانه است

نکته ای که جالب است این که اول بانک را بر اساس نام درس ***** می کنم بعد دانشجویان یک درس که دستم اومد حالا می خوام ببینم که دانشجویانی که بیش از 3 جلسه غیبت دارند کیا هستن خوب بعد از ***** من از دستور وایل استفاده می کنم یعنی از اولین جلسه هر دانشجو تا آخرین جلسه را جستجو می کنم اگر بیش از سه جلسه غیبت داشت نمایش می دم

کد این جستجو به این صورت است :

table1.first;
while not (table1.eof)do
begin
j:=table1['jalase'];
m:=0;
for i:=1 to j do
if table1['j'+inttostr(i)]=false then
m:=m+1;
if m>3 then showmessage('');
table1.next;
end;


در یه روز خوب سورس کامل را برای شما قرار می دم

as13851365
26-07-2007, 11:44
در جواب پست 4 دوست عزیز اصلا نیازی نیست که یک کد برای هر دانشجو بدی

اصلا در دفتر حضور غیاب نیازی نیست که کلید داشته باشی چون کار ها را کمی پیچیده می کنه

تنها باید نام درس را فیل تر کنی و بعد با دستور وایل دانشجو را جستجو کن اگر بلدی از فیل تر ترکیبی استفاده کن خیلی خیلی راحت است