View Full Version : لیست حضور و غیاب کلاس
pcseven
شنبه 15 فروردین 1388, 13:59 عصر
(این صرفا یک مثال است و اگر چیزی شبیه این سراغ دارید باز هم ممنون می شوم که راهنمایی کنید)
فرض کنید سه جدول با فیلد های زیر داریم:
دانشجو (کد دانشجو ، نام و نام خانوادگی، شماره دانشجویی)
درس (کد درس، عنوان درس)
تشکیل کلاس (کد تشکیل کلاس، کد درس، تاریخ)
حضور و غیاب (کد حضور و غیاب، کد تشکیل کلاس، کد دانشجو)
هر جلسه از کلاس که تشکیل می شود، در جدول تشکیل کلاس ثبت می شود.
حاضرین در هر جلسه تشکیل شده در جدول حضور و غیاب ثبت می شوند.
چگونه می توان Query نوشت که نتیجه آن چیزی شبیه لیست حضور و غیاب باشد؟
هدف چاپ یک لیست حضور و غیاب است. در واقع ادغام دو جدول به شکلی که داده های جدول اول، عناوین ستون های جدول حاصل باشند و داده های جدول دوم زیر این عناوین قرار گیرند.
hasan_esfahan
شنبه 15 فروردین 1388, 15:25 عصر
شما می توانید ابتدا یک گروه تشکیل بدهید که این گروه بر اساس فیلد کد درس از جدول درس باشد با این کار درس ها از هم جدا می شوند سپس در قسمتی که گروه را ایجاد کردید زیر ان دوباره یک گروه دیگر ایجاد کرده که این گروه بر اساس کد تشکیل کلاس می باشد از جدول تشکیل کلاس. خوب تا اینجا شما کلاس ها و درس ها را از هم جدا کردید اما شما با کد تشکیل کلاس می تونید دانشجویان ان کلاس را نمایش دهید برای این کا هم می تونید یک subreport ایجاد کرده و مشخصات دانشجو را در ان نمایش داد در اخر البته کمی کار پیچیده است اما به هر حال اگر مرحله به مرحله پیش بروید می تونید انجام دهید
mom alone
شنبه 15 فروردین 1388, 23:06 عصر
من برای حضور و غیاب افراد در شرکت یه کوری نوشتم
سه جدول دارم
1- اعضاء == دانشجو ی شما
2- جدول شیفت == جدول تشکیل کلاس شما
3- جدول حضور == جدول حضور و غیاب شما
حالا بگم از کوری
SELECT ISNULL(derivedtbl_1.tarikh, 0) AS tarikh, derivedtbl_1.vorod, derivedtbl_1.khoroj, derivedtbl_1.tozihat, derivedtbl_1.flag,
ISNULL(dboshiftriz.tarikh, 0) AS tarikhshft, dboshiftriz.az, dboshiftriz.ta, derivedtbl_1.kodperso, dboshiftriz.kodshift
FROM (SELECT tarikh, vorod, ISNULL(khoroj, 0) AS khoroj, tozihat, flag, kodperso
FROM dbo.rozafrad
WHERE (kodperso = N'68/56/803-10011')) AS derivedtbl_1 FULL OUTER JOIN
(SELECT tarikh, az, ta, kodshift
FROM dbo.shiftriz
WHERE (kodshift = 1)) AS dboshiftriz ON derivedtbl_1.tarikh = dbo.shiftriz.tarikh
بگم که جواب گرفتم اگه مشکلی داشتی بگو
از FULL OUTER JOIN استفاده کن
با فرمول نویسی می تونی تعیین کنی که اگه فیلد تاریخ در جدول حضور و غیاب null بود اون رکورد رو غیبت در نظر بگیرد و....
pcseven
شنبه 15 فروردین 1388, 23:33 عصر
ممنون از لطفتون
فکر کنم با دستور PIVOT که در SQL Server 2005 اضافه شده، میشه این کار رو انجام داد.
شما با این دستور کار نکردید ؟ اگر موفق شدم کد رو همینجا قرار میدم.
About PIVOT & UNPIVOT:
http://msdn.microsoft.com/en-us/library/ms177410.aspx
من برای حضور و غیاب افراد در شرکت یه کوری نوشتم
سه جدول دارم
1- اعضاء == دانشجو ی شما
2- جدول شیفت == جدول تشکیل کلاس شما
3- جدول حضور == جدول حضور و غیاب شما
حالا بگم از کوری
SELECT ISNULL(derivedtbl_1.tarikh, 0) AS tarikh, derivedtbl_1.vorod, derivedtbl_1.khoroj, derivedtbl_1.tozihat, derivedtbl_1.flag,
ISNULL(dboshiftriz.tarikh, 0) AS tarikhshft, dboshiftriz.az, dboshiftriz.ta, derivedtbl_1.kodperso, dboshiftriz.kodshift
FROM (SELECT tarikh, vorod, ISNULL(khoroj, 0) AS khoroj, tozihat, flag, kodperso
FROM dbo.rozafrad
WHERE (kodperso = N'68/56/803-10011')) AS derivedtbl_1 FULL OUTER JOIN
(SELECT tarikh, az, ta, kodshift
FROM dbo.shiftriz
WHERE (kodshift = 1)) AS dboshiftriz ON derivedtbl_1.tarikh = dbo.shiftriz.tarikh
بگم که جواب گرفتم اگه مشکلی داشتی بگو
از FULL OUTER JOIN استفاده کن
با فرمول نویسی می تونی تعیین کنی که اگه فیلد تاریخ در جدول حضور و غیاب null بود اون رکورد رو غیبت در نظر بگیرد و....
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.