baran.f.a
سه شنبه 09 دی 1393, 22:22 عصر
سوال من یه کوئری دارم که می خوام تعداد دستگاه های ابطالی، تعمیری و خام را اساس نام بانک(psp_id) بشمرم این داده ها در 2 جدول قرار داره کوئریمو تو قسمت زیر آوردم .
select psp_id , Raw , Cancell , repair
from(
select pos.psp_id ,COUNT( pos.serial_code) as `Raw`
from pos
where pos.status='خام'
group by pos.psp_id
UNION
select pos.psp_id ,COUNT( pos.serial_code) as `Cancell`
from pos
INNER JOIN change_location
on change_location.serial_code = pos.serial_code
where change_location.status='ابطالی'
and
change_location.update_date > pos.update
group by pos.psp_id
UNION
select pos.psp_id,COUNT(pos.serial_code) AS `repair`
from pos
INNER JOIN change_location
on change_location.serial_code = pos.serial_code
where change_location.status='تعمیری'
and
change_location.update_date > pos.update
group by pos.psp_id
) t
group by psp_id "
هر کدام از select های داخلی جداگانه کار می کنند اما وقتی می خوام نتیجه آن ها را باهم ببینم خطاهای عجیب می ده لطفا راهنماییم کنید کجای کوئریم اشتباه .
select psp_id , Raw , Cancell , repair
from(
select pos.psp_id ,COUNT( pos.serial_code) as `Raw`
from pos
where pos.status='خام'
group by pos.psp_id
UNION
select pos.psp_id ,COUNT( pos.serial_code) as `Cancell`
from pos
INNER JOIN change_location
on change_location.serial_code = pos.serial_code
where change_location.status='ابطالی'
and
change_location.update_date > pos.update
group by pos.psp_id
UNION
select pos.psp_id,COUNT(pos.serial_code) AS `repair`
from pos
INNER JOIN change_location
on change_location.serial_code = pos.serial_code
where change_location.status='تعمیری'
and
change_location.update_date > pos.update
group by pos.psp_id
) t
group by psp_id "
هر کدام از select های داخلی جداگانه کار می کنند اما وقتی می خوام نتیجه آن ها را باهم ببینم خطاهای عجیب می ده لطفا راهنماییم کنید کجای کوئریم اشتباه .