باسلام
من برای نمایش صفحه Index خودم یه سری اطلاعات رو از دیتابیس گرفتم و چندتا جدول رو با هم بصورت زیر JOIN کردم
var q = from Lec in db.LecturePresenceControls
join Dayss in db.Days
on Lec.DayOfLectureID equals Dayss.ID
join Vaz in db.LecturePrecenceVaziats
on Lec.Vaziat equals Vaz.ID
join Dars in db.LectureTables
on Lec.LectureID equals Dars.ID
join Con in db.ContractBaseTables
on Lec.ContractID equals Con.ID
join Hag in db.HagolTadrisTables
on Con.NimsalTahsili equals Hag.NimsalTahsili
orderby Lec.DayOfLectureID descending
select new ViewModel.LecturePrecenceTotalVM
{
Id = Lec.ID,
ContractID = Lec.ContractID,
LectureID = Lec.LectureID,
LectureName = Lec.LectureName,
ProfessorName = Lec.ProfessorName,
DaysName = Dayss.Days,
SeHazer = db.SessionLectureTables.Count(x => x.LecturePrecenceID.Equals(Lec.ID) && x.Vaziat.Equals(1)),
NazariVahed = Dars.NazariUnit,
AmaliVahed =Dars.AmaliUnit,
KargahiVahed =Dars.KargahiUnit,
SumNazari = Hag.Mablag * Dars.NazariUnit,
SumAmali =0,
SumKargahi=0,
SubTotalLecture=0
};
return View(q.OrderByDescending(x => x.DaysName).ToList());
خط قرمز رنگو نگاه کنید:
SumNazari این حاصل ضرب مبلغ از جدول Hag با واحد نظری درس رو نشون میده!
خطهای بالایی برای join رو نگاه کنید
join Hag in db.HagolTadrisTables on Con.NimsalTahsili equals Hag.NimsalTahsili
من بر اساس نیمسال تحصیلی هر دو جدول رو join کردم!!! این درست نیست چون باید بر روی نیمسال، سال تحصیلی، مقطع و مدرس مدرس باشه!!!
اینکارو چچجوری انجام بدم!!!!!!!!!؟؟؟؟؟
یعنی NimsalTahsili و SaleTahsili و MagtaID و ProfessorMadrak از جدول Con باید با یک ردیف در جدول Hag برابر باشه!!!!
میتونید join نزنید و کوئری اصلی رو بزنید و اطلاعات اصلی رو بدست بیارید
بعد با یک حلقه روی اون عملیات مورد نظر را انجام بدید و شروط نهایی رو اعمال کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)