解決惠安惠達Bug:待命車數量明細不對

ZHOU_VIP發表於2017-06-09

描述:待命車數量為168-7=161,而明細中加起來是168,數量不對


以前我寫的SQL:


select m.item_name hostVehType, count(m.item_name) hostVehTypeCount from
(select cc.hostid,
	cc.HOST_VEH_TYPE,
	cc.owner_appsysid,
	cc.owner_appdeptid,a.item_name
from (select ext.hostid,ext.HOST_VEH_TYPE,ext.owner_appsysid,ext.owner_appdeptid
	   from position_host_info p
	   left join position_host_info_extend ext
		 on p.hostid = ext.hostid
	  where ext.verify_status = 1
		and (ext.process_status <3)) cc,
	DICTIONARY_ITEM a
where a.dic_type = 'HOST_VEH_TYPE' and cc.HOST_VEH_TYPE = a.item_value
and ((cc.owner_appsysid, cc.owner_appdeptid) in
		   (select appsysid, appdeptid
			   from table(get_subdept(-1, 2000, 0)))) )m  group by m.item_name

加起來的數量為168,是總的數量,並不是待命車的數量啊

修改SQL如下:測試待命車的數量為161,正確!


select m.item_name hostVehType, count(m.item_name) hostVehTypeCount from
(select cc.hostid,
    cc.HOST_VEH_TYPE,
    cc.owner_appsysid,
    cc.owner_appdeptid,a.item_name
from (select ext.hostid,ext.HOST_VEH_TYPE,ext.owner_appsysid,ext.owner_appdeptid
       from position_host_info p
       left join position_host_info_extend ext
         on p.hostid = ext.hostid
      where ext.verify_status = 1 --稽核狀態:0-未稽核,1-已稽核
        and (ext.process_status <3)) cc,--車輛處理狀態:1-正常;2-處置中;3-報廢中;4-已處置;5-已報廢
    DICTIONARY_ITEM a
where a.dic_type = 'HOST_VEH_TYPE' and cc.HOST_VEH_TYPE = a.item_value
and  cc.hostid not in--過濾任務車數量
(select tt.host_id
      from (SELECT t.host_id
              FROM vd_veh_assign_list t
              LEFT JOIN position_host_info_extend ext
                ON t.host_id = ext.hostid
             WHERE t.execute_status = 1--派車單執行狀態:0未執行;1執行中;2執行完成
               and ext.PROCESS_STATUS < 3
               AND ((ext.owner_appsysid, ext.owner_appdeptid) in
                   (select appsysid, appdeptid
                       from table(get_myviewdeptlist(1, 2000, 0))))) tt) 
and ((cc.owner_appsysid, cc.owner_appdeptid) in
           (select appsysid, appdeptid
               from table(get_subdept(-1, 2000, 0)))) )m  group by m.item_name

因為我們發現任務車的SQL是這樣的,有了靈感,在總的數量中通過hostid把任務車過濾掉,想到了這一點,其實很簡單



相關文章