SQL 연결 (JOIN)
수요:
- 사업자 등록 정보와 시스템 등록 정보의 불일치 문제 조회
- 일관성있는 필드는 표시되지 않고, 일관성없는 필드는 "●"로 표시됩니다.
- 외부 시스템에서 한 명의 투자자 지분율 만 비어있는 경우 지분율 경고시 빈 원이 표시됩니다.
SQL 쿼리 지침 :
- 왼쪽 조인과 조인 쿼리의 차이점에 유의하십시오.
- 경우 사용
- 관련 쿼리를 통해 가상 중간 테이블을 얻을 수 있으며 중간 테이블을 기반으로 관련 쿼리, 하위 쿼리 등을 만들 수 있습니다.
- 먼저 그것을 처리하는 방법을 생각하고 복잡한 문제를 여러 개의 간단한 문제로 나누고 마지막으로 함께 결합하십시오.
쿼리 결과 미리보기 :
- 디스플레이 필드의 일부
작은 테스트 :
SELECT count( a.unitid ) AS "条数", HEX( a.unitid ) AS "单位ID" FROM PMS_COMPANY_HOLDER AS a WHERE a.HOLDER_ZB_NEW = '' AND HEX( a.unitid ) IN ( SELECT HEX( g.unitid ) FROM GXJT_YJ AS g LEFT JOIN md_org AS m ON m.recid = g.unitid LEFT JOIN PMS_COMPANY_INFO AS p ON m.recid = p.unitid WHERE HEX( g.unitid ) LIKE '%67%' AND g.warningType = 'REGISTRATION_DIFFERENT' ) GROUP BY a.unitid
당신의 능력을 보여주세요 :
define query ad_query(@unitId string) begin SELECT w.stdname AS "单位", CASE WHEN w.WARNINGREASON CONTAINS 'COMPANY_NAME' THEN ' ●' END AS "企业名称", CASE WHEN y.num > 0 THEN ' ○' WHEN w.WARNINGREASON CONTAINS 'EQUITY_SITUATION' THEN ' ●' END AS "股权情况", CASE WHEN w.WARNINGREASON CONTAINS 'LEGAL_REPRESENTATIVE' THEN ' ●' END AS "法定代表人", CASE WHEN w.WARNINGREASON CONTAINS 'REGISTERED_CAPITAL' THEN ' ●' END AS "注册资本", CASE WHEN w.WARNINGREASON CONTAINS 'REGISTRATION_PROVIENCE' THEN ' ●' END AS "注册地", CASE WHEN w.WARNINGREASON CONTAINS 'REGISTRATION_DATE' THEN ' ●' END AS "注册日期", w.COMPANY_S_EXT_NODENUM AS "所属省份", w.UNITID AS "单位id", w.GQ_DATATIME AS "股权数据时期", w.GS_DATATIME AS "工商数据时期" FROM ( SELECT m.stdname, CASE WHEN g.WARNINGREASON CONTAINS 'COMPANY_NAME' THEN ' ●' END AS "COMPANY_NAME", CASE WHEN g.WARNINGREASON CONTAINS 'EQUITY_SITUATION' THEN ' ●' END AS "EQUITY_SITUATION", CASE WHEN g.WARNINGREASON CONTAINS 'LEGAL_REPRESENTATIVE' THEN ' ●' END AS "LEGAL_REPRESENTATIVE", CASE WHEN g.WARNINGREASON CONTAINS 'REGISTERED_CAPITAL' THEN ' ●' END AS "REGISTERED_CAPITAL", CASE WHEN g.WARNINGREASON CONTAINS 'REGISTRATION_PROVIENCE' THEN ' ●' END AS "REGISTRATION_PROVIENCE", CASE WHEN g.WARNINGREASON CONTAINS 'REGISTRATION_DATE' THEN ' ●' END AS "REGISTRATION_DATE", p.COMPANY_S_EXT_NODENUM AS "COMPANY_S_EXT_NODENUM", g.UNITID AS "UNITID", g.GQ_DATATIME AS "GQ_DATATIME", g.GS_DATATIME AS "GS_DATATIME", g.WARNINGREASON AS "WARNINGREASON" FROM GXJT_YJ AS g JOIN md_org AS m ON m.recid = g.unitid JOIN PMS_COMPANY_INFO AS p ON m.recid = p.unitid WHERE to_char ( m.parents ) CONTAINS ( to_char ( @unitId ) ) AND g.warningType = 'REGISTRATION_DIFFERENT' ) AS w LEFT JOIN ( SELECT count( a.unitid ) AS num, a.unitid FROM PMS_COMPANY_HOLDER AS a WHERE a.HOLDER_ZB_NEW = '' AND a.unitid IN ( SELECT g.unitid FROM GXJT_YJ AS g JOIN md_org AS m ON m.recid = g.unitid JOIN PMS_COMPANY_INFO AS p ON m.recid = p.unitid WHERE to_char ( m.parents ) CONTAINS ( to_char ( @unitId ) ) AND g.warningType = 'REGISTRATION_DIFFERENT' ) GROUP BY a.unitid ) AS y ON y.unitid = w.UNITID end