У меня есть этот запрос:
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 для каждой из них.
Этот запрос занимает девять секунд. Это слишком долго Любой другой запрос, который я написал к этим таблицам, немедленно возвращается. Какие-либо предложения? Я пробовал группировать и т. Д., Но могу заставить его работать только так или иначе (частица или <> частица), но не оба.
Возвращенные данные должны выглядеть следующим образом:
height | width | jobnum | particleqty | laminatedqty
79 49 t1000 10 5
78 49 t1000 1 3
79 47 t1000 15 0