مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

alitolouei

عضویت از 1393/09/23

نوشتن کوئری با سرعت اجرای بالا

  • دوشنبه 12 آذر 1397
  • 20:01
تشکر میکنم

میخوام روی جدول نمرات یک کوئری اجرا کنم که مشخص بشه کدام دبیر نمرات مربوط به ماههای مختلف رو وارد کردن یا نه؟

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

خواستم بدونم آیا روش بهتری وجود داره؟

select distinct weeklySchedules.lessonID,lessons.lessonTitle,gradesCourses.gradeCourseTitle,weeklySchedules.class as classNumber,weeklySchedules.employeeID,
	weeklySchedules.schoolGradeCourseID,employeesFixedInfo.firstName,employeesFixedInfo.lastName,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,7,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as mehr,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,8,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as aban,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,9,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as azar,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,10,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as dey,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,11,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as bahman,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,12,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as esfand,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,1,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as farvardin,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,2,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as ordibehesht,
	dbo.getEmployeeScoesCount(@yearID,weeklySchedules.employeeID,3,weeklySchedules.lessonID,weeklySchedules.schoolGradeCourseID,weeklySchedules.class,@schoolID) as khordad
	
	from weeklySchedules
	inner join employeesFixedInfo on employeesFixedInfo.ID = weeklySchedules.employeeID
	inner join lessons on lessons.ID = weeklySchedules.lessonID
	inner join schoolGradesCourses on schoolGradesCourses.ID = weeklySchedules.schoolGradeCourseID and schoolGradesCourses.yearID = @yearID and schoolGradesCourses.schoolID = @schoolID
	inner join gradesCourses on gradesCourses.ID = schoolGradesCourses.gradeCourseID
	where weeklySchedules.employeeID in(SELECT ID FROM dbo.StringToIntList(@employee_IDs,',')) and weeklySchedules.yearid = @yearID and weeklySchedules.schoolID = @schoolID
	order by lastName

پاسخ های این پرسش

تعداد پاسخ ها : 0 پاسخ
در حال حاضر هیچ پاسخی ارسال نشده است
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)