بهار آموزش با تخفیف های شگفت انگیز توسینسو بهار آموزش با تخفیف های شگفت انگیز توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
1

لیست اعضای غایب هر حضور غیاب در یک بازه زمانی مشخص ؟

سلام دوستان مشکل من در یک کوئری است:

سه تا جدول دارم با نام های ozviat,ap,present که به شرح زیر میباشند

ozviat : برای نگهداری اطلاعات اعضا

ap : برای نگهداری حضور غیاب های هر گروه که شامل فیلدهای 1- کد حضور غیاب 2- تاریخ 3- ساعت حضور غیاب 4- کد گروهی که حضور غیاب روی آن انجام شده.

present : برای نگهداری لیست افرادی که در هر حضور غیاب هستند استفاده میشود که با ap رابطه دارد. شامل فیلد های : 1- کد منحصر به فرد 2- کد حضور غیاب 3- کد عضو 4- وضعیت حضور(حضور، غیبت موجه)

یه چیز اینکه فقط افراد حاضر و غیبت موجه نگهداری میشوند و افراد غایب در جدول present نگهداری نمیشوند.

تونستم لیست اعضای حاضر و غیبت موجه ،هر حضور غیاب در یک بازه زمانی مشخص رو در بیارم.

حالا میخوام که لیست اعضای غایب هر حضور غیاب در یک بازه زمانی مشخص رو داشته باشم ! چطوری؟خواهش میکنم یک کوئری برام بزارید کارم گیره . ممنون .

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

select enter_number,ap.id_present from ozviat,ap,present
where
ap.id_group='1'
and
ozviat.id_group=ap.id_group
and
ap.id_present=present.id_present
and
ozviat.enter_number=present.id_ozve
and
ap.date>=13940604
and
ap.date<=13940613

خروجی :

سلام دوستان مشکل من در یک کوئری است:
سه تا جدول دارم با نام های ozviat,ap,present که به شرح زیر میباشند
ozviat : برای نگهداری اطلاعات اعضا
ap : برای نگهداری حضور غیاب های هر گروه که شامل فیلدهای 1- کد حضور غیاب 2- تاریخ 3- ساعت حضور غیاب 4- کد گروهی که حضور غیاب روی آن انجام شده.
present : برای نگهداری لیست افرادی که در هر حضور غیاب هستند استفاده میشود که با ap رابطه دارد. شامل فیلد های : 1- کد منحصر به فرد 2- کد حضور غیاب 3- کد عضو 4- وضعیت حضور(حضور، غیبت موجه)
یه چیز اینکه فقط افراد حاضر و غیبت موجه نگهداری میشوند و افراد غایب در جدول present نگهداری نمیشوند.
تونستم لیست اعضای حاضر و غیبت موجه ،هر حضور غیاب در یک بازه زمانی مشخص رو در بیارم.
حالا میخوام که لیست اعضای غایب هر حضور غیاب در یک بازه زمانی مشخص رو داشته باشم ! چطوری؟خواهش میکنم یک کوئری برام بزارید کارم گیره . ممنون .
اینم کوئری لیست افراد حاضر و غیبت موجه هر حضور غیاب گفتم شاید کمک کنه:
<sql>
select enter_number,ap.id_present from ozviat,ap,present
where
ap.id_group='1'
and
ozviat.id_group=ap.id_group
and
ap.id_present=present.id_present
and
ozviat.enter_number=present.id_ozve
and
ap.date>=13940604
and
ap.date<=13940613
<sql>
خروجی :
||http://tosinso.com/files/get/d39cce40-3cb4-42ac-a762-9beb5f3028c0||
مثلا در کد حضور غیاب 4 ، فقط عضو شماره 10000001 حاضر هست و بقیه غایب هستند حالا میخوام غایبین رو در بیارم خواهش میکنم کمک کنید

مثلا در کد حضور غیاب 4 ، فقط عضو شماره 10000001 حاضر هست و بقیه غایب هستند حالا میخوام غایبین رو در بیارم خواهش میکنم کمک کنید

پرسیده شده در 1394/06/22 توسط

3 پاسخ

3

سلام

دوست عزیز من آنچنان توجه مهندسی بانکت نشدم

فقط ...

به نظر من یک table بزا برای روز تاریخ و ساعت و یک کد بش اختصاص بده

یک table هم که لیست اعضا هستش

یک table هم برای حضور غیاب بزار اینجوری که مثلا کد روز 1 شخص با کد 100 حاضر بوده

حاضر یا غایب بئدن هم با یک فیلد بیت میشه true یا false بودنش رو چک کرد

داخل شرط ها هم میتونی از عملگر between یا in استفاده کنی کارت راحت میشه

پاسخ در 1394/06/22 توسط
0

با تشکر از شما دوست عزیز ولی وضعیت حاضر بودن افراد سه حالته (حضور ، غیبت موجه و غایب) است.

من فقط توی جدول حضور و غیاب افرادی که حاضر یا غیبت موجه هستند رو ثبت میکنم و افرادی که غیبت دارن رو ثبت نمیکنم ، خب طبیعتا وقتی فردی حاضر یا غیبت موجه نباشد ، غایب خواهد بود .

این طوری هم دیتای کمتری ذخیره میشه و هم کاربر موقع ثبت حضور و غیاب کمتر وقتش گرفته میشه. (چون افراد غایب رو ثبت نمیکنه).

حالا میخوام لیست افرادی که غیبت دارن رو در بیارم ولی کدشو نمیدونم اگه یه راهنمایی یا کوئریش رو برام بزارین ممنون میشم.

پاسخ در 1394/06/22 توسط
1

با سلام

ببینید دوست عزیز بنده احساس می کنم قدری سناریو رو پیچیده کردید(در مورد توضیح دادن)

و اینکه اون روش کوئری که نوشتید مناسب نیست!

من در یکی از پروژه هام به همچین موردی برخورد کردم که شباهت بسیار زیادی با مسئله شما دارد.

و اما جداول موجود :

1-جدول اشخاص (کد-نام و نام خانوادگی،نام پدر و...)

2-جدول منطقه جغرافیایی (کد،نام منطقه جغرافیایی،موقعیت مکانی)

3-جدول حضور و غیاب (کد،کد اشخاص،کد منطقه جغرافیایی،وضعیت حضور(حاضر است یا غایب است)،نوع غیبت(موجه یا غیر موجه)،

ساعت،تاریخ،کد کاربر سیستم و...)

در جدول حضور و غیاب براحتی می تونیم بگیم که چه شخص در چه منطقه ای حضور داشته یا خیر و دوم اینکه اگر غیبت داشته ،غیبتش موجه بوده ی غیر موجه! که جنس این دو فیلد هم از نوع Bit است.

نکته در خصوص مقدار دهی این دو فیلد(افراد حاضر =1 ،افراد غایب =0 ،غیبت موجه=1، غیبت غیر موجه=0)

حال با یک INNER JOIN ساده بین 3 تا جدول و همینطور اعمال شرط بر روی جدول حضور غیاب براحتی می تونید به گزارش مد نظرتون برسید.

با تشکر

پاسخ در 1394/10/04 توسط

پاسخ شما