我有这个疑问:我如何摆脱这些子选择?
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