rk1983xx
پنج شنبه 02 اردیبهشت 1389, 01:12 صبح
سلام به همه دوستان
من یه کوئری دارم که باید داخل یک جدول نمایندگی هایی رو که از یه حدی بیشتر رکورد دارند رو از چند تا فیلداشون معدل بگیرم
و بعد چنتا فیلد از مشخصات نمایندگی رو هم بهش میچسبونه و خروجی میده
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 میشه چیزی ساخت که جایگزین این بشه ؟
من یه کوئری دارم که باید داخل یک جدول نمایندگی هایی رو که از یه حدی بیشتر رکورد دارند رو از چند تا فیلداشون معدل بگیرم
و بعد چنتا فیلد از مشخصات نمایندگی رو هم بهش میچسبونه و خروجی میده
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 میشه چیزی ساخت که جایگزین این بشه ؟