У меня есть этот запрос:Как избавиться от этих подзадач?
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
+1 - Ваша идея такая же, как у меня, только лучше! –
Я собираюсь попробовать это снова, и я надеюсь, что это сработает, но сегодня это не было. Он продолжал суммировать все в ламинированную партию. Я, вероятно, просто что-то не в том месте. Anywho, я отдам его. –
Это будет работать правильно, если 'productiondoorinformation.alternaterating' не является нулевым. –