fetch queries for the students in the student group
diff --git a/erpnext/schools/doctype/student_group/student_group.js b/erpnext/schools/doctype/student_group/student_group.js
index 83fe094..80355a8 100644
--- a/erpnext/schools/doctype/student_group/student_group.js
+++ b/erpnext/schools/doctype/student_group/student_group.js
@@ -9,6 +9,22 @@
 				}
 			};
 		});
+		if (!frm.__islocal) {
+			frm.set_query("student", "students", function() {
+				return{
+					query: "erpnext.schools.doctype.student_group.student_group.fetch_students",
+					filters: {
+						'academic_year': frm.doc.academic_year,
+						'group_based_on': frm.doc.group_based_on,
+						'academic_term': frm.doc.academic_term,
+						'program': frm.doc.program,
+						'batch': frm.doc.batch,
+						'course': frm.doc.course,
+						'student_group': frm.doc.name
+					}
+				}
+			});
+		}
 	},
 
 	refresh: function(frm) {
diff --git a/erpnext/schools/doctype/student_group/student_group.py b/erpnext/schools/doctype/student_group/student_group.py
index 9cdf9c7..9822d90 100644
--- a/erpnext/schools/doctype/student_group/student_group.py
+++ b/erpnext/schools/doctype/student_group/student_group.py
@@ -95,3 +95,25 @@
 		'''.format(condition1=condition1, condition2=condition2),
 		({"academic_year": academic_year, "academic_term":academic_term, "program": program, "batch": batch, "course": course}), as_dict=1)
 
+
+@frappe.whitelist()
+def fetch_students(doctype, txt, searchfield, start, page_len, filters):
+	if filters.get("group_based_on") != "Activity":
+		enrolled_students = get_program_enrollment(filters.get('academic_year'), filters.get('academic_term'),
+			filters.get('program'), filters.get('batch'))
+		student_group_student = frappe.db.sql_list('''select student from `tabStudent Group Student` where parent=%s''',
+			(filters.get('student_group')))
+		students = ([d.student for d in enrolled_students if d.student not in student_group_student]
+			if enrolled_students else [""]) or [""]
+		return frappe.db.sql("""select name, title from tabStudent
+			where name in ({0}) and `{1}` LIKE %s
+			order by idx desc, name
+			limit %s, %s""".format(", ".join(['%s']*len(students)), searchfield),
+			tuple(students + ["%%%s%%" % txt, start, page_len]))
+	else:
+		return frappe.db.sql("""select name, title from tabStudent
+			where `{}` LIKE %s
+			order by idx desc, name
+			limit %s, %s""".format(searchfield),
+			tuple(["%%%s%%" % txt, start, page_len]))
+