Conexão SQL (JOIN)
exigem:
- Consulte o problema de inconsistência entre as informações de registro da empresa e as informações de registro no sistema
- Os campos consistentes não são marcados, os campos inconsistentes são marcados com "●"
- Se apenas o índice de patrimônio líquido de um investidor no sistema externo estiver vazio, um círculo vazio será exibido quando o índice de patrimônio líquido for avisado.
Diretrizes de consulta SQL:
- Observe a diferença entre junção à esquerda e consulta de junção
- Uso de caso quando
- Uma tabela intermediária virtual pode ser obtida por consulta relacionada, e consultas relacionadas, subconsultas, etc. podem ser feitas com base na tabela intermediária.
- Primeiro pense em como lidar com isso, divida um problema complexo em vários problemas simples e, finalmente, junte-os.
Visualização dos resultados da consulta:
- Parte do campo de exibição
Pequeno teste:
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
Mostre suas habilidades:
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