You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写SQL查询完成托管对账:对比两来源证券持仓量

托管对账SQL查询实现

需求说明

对比来源1的Table1与来源2的Table2中的证券持仓量,输出所有唯一ISIN对应的两边持仓数量(无对应数据则显示NULL),其中Table1的持仓量别名为AmountA,Table2的别名为AmountB。

示例数据

Table1(来源1持仓)

ISINAmount
US-000402625-01,000
US-000341234-02,000

Table2(来源2持仓)

ISINAmount
US-000402625-01,000
US-000341234-0500
US-000433045-0200

解决方案

标准SQL实现(支持FULL OUTER JOIN的数据库:PostgreSQL、SQL Server等)

使用FULL OUTER JOIN关联两表的ISIN字段,确保所有ISIN都被包含:

SELECT
    COALESCE(t1.ISIN, t2.ISIN) AS ISIN,
    t1.Amount AS AmountA,
    t2.Amount AS AmountB
FROM Table1 t1
FULL OUTER JOIN Table2 t2 ON t1.ISIN = t2.ISIN
ORDER BY ISIN;

MySQL兼容方案(MySQL不支持FULL OUTER JOIN)

通过LEFT JOIN和RIGHT JOIN结合UNION实现全量关联:

-- 包含Table1所有ISIN及Table2中匹配的数据
SELECT
    t1.ISIN,
    t1.Amount AS AmountA,
    t2.Amount AS AmountB
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.ISIN = t2.ISIN
UNION
-- 补充Table2中不在Table1的ISIN数据
SELECT
    t2.ISIN,
    t1.Amount AS AmountA,
    t2.Amount AS AmountB
FROM Table1 t1
RIGHT JOIN Table2 t2 ON t1.ISIN = t2.ISIN
WHERE t1.ISIN IS NULL
ORDER BY ISIN;

查询结果

ISINAmountAAmountB
US-000402625-01,0001,000
US-000341234-02,000500
US-000433045-0NULL200

内容的提问来源于stack exchange,提问作者UncleLeo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 08:50:16