我有這個疑問:我如何擺脫這些子選擇?
select distinct pdi.height, pdi.width, pj.jobnum
, (select count(barcode) from productiondoorinformation
inner join view_productionjobs on view_productionjobs.ctr=productiondoorinformation.productionjobsctr
where view_productionjobs.jobnum=pj.jobnum
and productiondoorinformation.height=pdi.height
and productiondoorinformation.width=pdi.width
and productiondoorinformation.alternaterating='PARTICLE') as particleqty
, (select count(barcode) from productiondoorinformation
inner join view_productionjobs on view_productionjobs.ctr=productiondoorinformation.productionjobsctr
where view_productionjobs.jobnum=pj.jobnum
and productiondoorinformation.height=pdi.height
and productiondoorinformation.width=pdi.width
and productiondoorinformation.alternaterating<>'PARTICLE') as laminatedqty
from productiondoorinformation pdi inner join view_productionjobs pj on pj.ctr=pdi.productionjobsctr
where pj.jobnum='' + @Jobnum + ''
必須有一個更好的方式是一個更好的方式來做到這一點。我討厭這些子選集,但是沒有足夠的精力去重寫沒有它們的東西。子查詢有兩種不同的數量,當你看到每個子句的where子句時,你會注意到這兩個數量。
該查詢需要9秒鐘才能執行。太長了。我對這些表格寫的任何其他查詢都會立即返回。有什麼建議麼?我嘗試了group by等,但只能使其以某種方式工作(粒子或粒子),但不能同時使用這兩種方法。
返回的數據應該是這樣的:
height | width | jobnum | particleqty | laminatedqty
79 49 t1000 10 5
78 49 t1000 1 3
79 47 t1000 15 0
+1 - 你的想法和我的一樣,只有更好! – 2012-03-12 21:41:33
我會再試一次,我希望它可以工作,但它今天不早。它不斷將所有內容都彙總成疊層。我可能只是在錯誤的地方有東西。任何人,我會放手一搏。 – 2012-03-12 21:51:23
如果'productiondoorinformation.alternaterating'不爲null,這將正確工作。 – 2012-03-12 21:54:05