سلام به همه دوستان
من یه کوئری دارم که باید داخل یک جدول نمایندگی هایی رو که از یه حدی بیشتر رکورد دارند رو از چند تا فیلداشون معدل بگیرم
و بعد چنتا فیلد از مشخصات نمایندگی رو هم بهش میچسبونه و خروجی میده
select
((avg(Rawdata.Q1 )-1)*250) as Q1, ((avg(Rawdata.Q2 )-1)*250) as Q2,
((avg(Rawdata.Q3 )-1)*250) as Q3, ((avg(Rawdata.Q4 )-1)*250) as Q4,
((avg(Rawdata.Q5 )-1)*250) as Q5, ((avg(Rawdata.Q6 )-1)*250) as Q6,
((avg(Rawdata.Q7 )-1)*250) as Q7, ((avg(Rawdata.Q8 )-1)*250) as Q8,
((avg(Rawdata.Q9 )-1)*250) as Q9, ((avg(Rawdata.Q10 )-1)*250) as Q10,
((avg(Rawdata.Q11 )-1)*250) as Q11, ((avg(Rawdata.Q12 )-1)*250) as Q12,
((avg(Rawdata.Q13 )-1)*250) as Q13, ((avg(Rawdata.Q18 )-1)*250) as Q18,
Count(*) as cntr,rawdata.Bcode2,
Companies.BCode, Companies.BranchName, Companies.Ostan, Companies.city, Companies.GTP
from rawdata , Companies
where rawdata.Bcode2 in (select Bcode2 from Rawdata Group by BCode2 Having Count(*)<10)
GROUP BY Rawdata.BCode2, Companies.BCode, Companies.BranchName, Companies.Ostan, Companies.city, Companies.GTP
مشکل اصلی افت سرعت و حتی هنگ در قسمتی هست که کد نمایندگی رو توی جدولی که از شمارش رکورد ها جستجومی کنه اتفاق میافته که نمیدونم چجوری حلش کنم ؟
where rawdata.Bcode2 in (select Bcode2 from Rawdata Group by BCode2 Having Count(*)<10)
آیا با Inner Join میشه چیزی ساخت که جایگزین این بشه ؟