Browse Source

sql优化

master
sunyuchao 4 years ago
parent
commit
0ce1b0a8b8
  1. 19
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml
  2. 19
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml
  3. 40
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

19
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerStaffAgencyDao.xml

@ -27,25 +27,12 @@
ca.level, ca.level,
ca.area_code, ca.area_code,
ca.parent_area_code, ca.parent_area_code,
( CASE WHEN ca.longitude is null THEN IFNULL(ca.longitude, cc.longitude) longitude,
( SELECT longitude FROM customer_agency IFNULL(ca.latitude, cc.latitude) latitude
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE ca.longitude
END
) longitude,
( CASE WHEN ca.latitude is null THEN
( SELECT latitude FROM customer_agency
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE ca.latitude
END
) latitude
FROM FROM
customer_staff_agency csa customer_staff_agency csa
INNER JOIN customer_agency ca ON csa.agency_id = ca.id INNER JOIN customer_agency ca ON csa.agency_id = ca.id
INNER JOIN customer_agency cc ON cc.pid = '0' AND ca.customer_id = cc.customer_id
WHERE WHERE
csa.del_flag = '0' csa.del_flag = '0'
AND ca.del_flag = '0' AND ca.del_flag = '0'

19
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

@ -190,23 +190,10 @@
ca.organization_name AS "agencyName", ca.organization_name AS "agencyName",
ca.pids AS "pids", ca.pids AS "pids",
ca.level level, ca.level level,
( CASE WHEN ca.longitude is null THEN IFNULL(ca.longitude, cc.longitude) longitude,
( SELECT longitude FROM customer_agency IFNULL(ca.latitude, cc.latitude) latitude
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE ca.longitude
END
) longitude,
( CASE WHEN ca.latitude is null THEN
( SELECT latitude FROM customer_agency
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE ca.latitude
END
) latitude
FROM customer_agency ca FROM customer_agency ca
INNER JOIN customer_agency cc ON cc.pid = '0' AND ca.customer_id = cc.customer_id
WHERE ca.del_flag = '0' WHERE ca.del_flag = '0'
AND ca.pids = #{subAgencyPids} AND ca.pids = #{subAgencyPids}
ORDER BY ca.created_time DESC ORDER BY ca.created_time DESC

40
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerGridDao.xml

@ -409,25 +409,11 @@
) agencyGridName, ) agencyGridName,
cg.grid_name gridName, cg.grid_name gridName,
<!-- 网格没有经纬度时获取客户根组织下的 --> <!-- 网格没有经纬度时获取客户根组织下的 -->
( CASE WHEN cg.longitude is null THEN IFNULL(cg.longitude, ca.longitude) longitude,
( SELECT longitude FROM customer_agency IFNULL(cg.latitude, ca.latitude) latitude
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE cg.longitude
END
) longitude,
( CASE WHEN cg.latitude is null THEN
( SELECT latitude FROM customer_agency
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE cg.latitude
END
) latitude
FROM FROM
customer_grid cg customer_grid cg
INNER JOIN customer_agency ca ON cg.pid = ca.id INNER JOIN customer_agency ca ON ca.pid = '0' AND ca.customer_id = cg.customer_id
WHERE WHERE
cg.del_flag = '0' cg.del_flag = '0'
AND ca.del_flag = '0' AND ca.del_flag = '0'
@ -758,25 +744,11 @@
cg.contacts, cg.contacts,
cg.mobile, cg.mobile,
<!-- 网格没有经纬度时获取客户根组织下的 --> <!-- 网格没有经纬度时获取客户根组织下的 -->
( CASE WHEN cg.longitude is null THEN IFNULL(cg.longitude,ca.longitude) longitude,
( SELECT longitude FROM customer_agency IFNULL(cg.latitude,ca.latitude) latitude
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE cg.longitude
END
) longitude,
( CASE WHEN cg.latitude is null THEN
( SELECT latitude FROM customer_agency
WHERE del_flag = '0' AND customer_id = (SELECT customer_id FROM customer_agency WHERE id = ca.id)
ORDER BY pid ASC LIMIT 1
)
ELSE cg.latitude
END
) latitude
FROM FROM
customer_grid cg customer_grid cg
INNER JOIN customer_agency ca ON cg.pid = ca.id INNER JOIN customer_agency ca ON ca.pid = '0' AND ca.customer_id = cg.customer_id
WHERE WHERE
cg.del_flag = '0' cg.del_flag = '0'
AND ca.del_flag = '0' AND ca.del_flag = '0'

Loading…
Cancel
Save