Files
ai-g3sb-backman2.0/data/Example/Example_text2sql.md
T
2026-04-10 16:52:07 +08:00

67 KiB
Raw Blame History

BackMan 用户常问问题 SQL 查询文档

版本: v3.0
日期: 2026-04-07
状态: 已完成
固定日期: 2026-04-02(测试环境数据日期)


目录


固定日期说明

本文档中所有涉及"今日"、"本月"、"今年"等时间范围的问题,均使用以下固定日期进行查询:

固定日期 含义
2026-04-02 今日/本月参考日期
2026-04-01 昨日
2026-04-03 明日
2026年4月 本月

注意:由于测试环境可能缺少最新数据,使用固定日期可以确保SQL查询结果的稳定性和可验证性。


Q1. 按对手方的未结算交易

问题

Show all unsettled trades as of [date] grouped by counterparty.

按对手方列出截至[日期]的所有未结算交易。

查询SQL

-- 按对手方统计截至 2026-04-02 的未结算交易
-- 使用 TSBBrokerContract(经纪商合约表),按 BrokerID(对手方经纪商)分组
-- SettleStatus='U' 表示未结算;CashSettleDate <= '2026-04-02' 筛选截至日
SELECT 
    b.BrokerID,
    m.Name AS BrokerName,
    COUNT(*) AS UnsettledTradeCount,
    SUM(b.SettleQuantity) AS TotalUnsettledQty,
    SUM(b.SettleAmount) AS TotalUnsettledAmount,
    MIN(b.BuySell) + '~' + MAX(b.BuySell) AS BuySellRange,
    MIN(b.CashSettleDate) AS EarliestSettleDate,
    MAX(b.CashSettleDate) AS LatestSettleDate
FROM TSBBrokerContract b
LEFT JOIN MCBroker m ON b.BrokerID = m.BrokerID
WHERE b.SettleStatus = 'U'
  AND b.CashSettleDate <= '2026-04-02'
GROUP BY b.BrokerID, m.Name
ORDER BY TotalUnsettledAmount DESC;

SQL执行结果

BrokerID BrokerName UnsettledTradeCount TotalUnsettledQty TotalUnsettledAmount BuySellRange EarliestSettleDate LatestSettleDate
CCASS CCASS 622 40,459,253 44,173,571.06 B~S 2025-07-30 2026-04-02

注:CCASS(Hong Kong Securities Clearing Company Limited)是香港交易所的中央结算机构,作为交易所交易的核心对手方。622笔未结算合约均为 HKEX 市场。

SQL理由

  • TSBBrokerContract 是经纪商/对手方合约表,记录与外部对手方的交易合约,BrokerID 即对手方标识
  • SettleStatus = 'U' 表示未结算;CashSettleDate <= '2026-04-02' 筛选截至日未结清的合约
  • 关联 MCBroker 获取对手方经纪商名称
  • 按 BrokerID 分组汇总未结算数量和金额

SQL准确度评分

评分: 9/10
理由: 表结构清晰,对手方字段(BrokerID)可关联到经纪商名称,数据可执行;但 CCASS 是中央结算机构而非具体经纪商,如需更细分对手方(如具体经纪商),需结合 TSBAccountContract.SettleContraID 关联 TSBBrokerContract.ContractID 进一步追溯。


Q2. 今日客户账户间股票转移

问题

List all stock transfers between client accounts performed today.

列出今日所有客户账户之间的股票转移记录。

查询SQL

-- 查询今日客户账户间股票转移(参考日期:2026-04-02)
-- 使用 TSBAccountInstrumentMovement,MovementType='T' 表示账户间转移
-- ValueDate 为转移生效日期,关联 MCInstrument 获取证券名称
SELECT 
    m.MovementID,
    m.AccountID AS FromAccountID,
    m.TransferToAccountID,
    m.InstrumentID,
    i.Name AS InstrumentSymbol,
    m.MovementType,
    m.Quantity AS TransferQuantity,
    m.ValueDate AS TransferDate
FROM TSBAccountInstrumentMovement m
LEFT JOIN MCInstrument i ON m.InstrumentID = i.InstrumentID
WHERE m.MovementType = 'T'
  AND m.ValueDate = '2026-04-02'
ORDER BY m.ValueDate;

SQL执行结果

当前查询无结果(测试环境中 TSBAccountInstrumentMovement 的 MovementType='T' 最新记录为 2025-10-21,无 2026-04-02 的账户间转移数据)

SQL理由

  • TSBAccountInstrumentMovement 是持仓变动流水表,记录所有证券变动事件
  • MovementType = 'T'(Transfer)特指账户间股票转移,对应 TransferToAccountID 记录目标账户
  • ValueDate 是转移生效日期,可按日期过滤
  • 关联 MCInstrument 获取证券代码/名称
  • 注意:BCAccountInstrument 的 TodayIn/TodayOut 是实时快照,不带历史日期维度,不能用于查历史转移

SQL准确度评分

评分: 9/10
理由: 表结构清晰,MovementType='T' + ValueDate 组合能精确定位某日的账户间转移;测试环境缺少 2026-04-02 数据属测试数据限制,非 SQL 问题。


Q3. 今日结算汇率

问题

What are the currency exchange rates used for today's settlement?

今日结算使用的汇率是多少?

查询SQL

表结构说明:

表名 字段 说明
HCExchangeRate ExchangeRateID 汇率类型ID
HCExchangeRate Name 汇率类型名称
HCExchangeRateDetail ExchangeRateID 关联汇率类型
HCExchangeRateDetail FromCurrencyID 源货币
HCExchangeRateDetail ToCurrencyID 目标货币
HCExchangeRateDetail ExchangeRate 汇率值
HCExchangeRateDetail ExchangeRateBid 买价
HCExchangeRateDetail ExchangeRateAsk 卖价

汇率类型说明:

  • EVALUATION:估值汇率(用于资产估值)
  • HKEX:港交所官方汇率
  • LEDGER:台账汇率(内部记账用)

SQL 1: 查询汇率类型

-- 查询汇率类型列表 (固定日期: 2026-04-02)
SELECT 
    ExchangeRateID, 
    Name, 
    NameEx
FROM HCExchangeRate
WHERE ValueDate = '2026-04-02'
ORDER BY ExchangeRateID;

执行结果1:

ExchangeRateID Name NameEx
EVALUATION 估值汇率 NULL
HKEX 港交所汇率 NULL
LEDGER 账本汇率 NULL

SQL 2: 查询具体汇率值

-- 查询具体汇率值 (固定日期: 2026-04-02)
SELECT 
    d.ExchangeRateID,
    r.Name AS ExchangeRateName,
    d.FromCurrencyID,
    d.ToCurrencyID,
    d.ExchangeRateDirection,
    d.ExchangeRate,
    d.ExchangeRateBid,
    d.ExchangeRateAsk
FROM HCExchangeRateDetail d
INNER JOIN HCExchangeRate r 
    ON d.ExchangeRateID = r.ExchangeRateID 
    AND d.ValueDate = r.ValueDate
WHERE d.ValueDate = '2026-04-02'
ORDER BY d.ExchangeRateID, d.FromCurrencyID, d.ToCurrencyID;

执行结果2:

ExchangeRateID ExchangeRateName FromCurrencyID ToCurrencyID ExchangeRate
HKEX 港交所汇率 USD HKD 7.754
HKEX 港交所汇率 CNY HKD 1.0805
HKEX 港交所汇率 GBP HKD 12.8
HKEX 港交所汇率 HKD USD 0.128966
HKEX 港交所汇率 HKD CNY 0.925497
HKEX 港交所汇率 JPY HKD 0.095
HKEX 港交所汇率 SGD HKD 6.1
LEDGER 账本汇率 USD HKD 7.8
LEDGER 账本汇率 CNY HKD 1.081
LEDGER 账本汇率 GBP HKD 12.8
LEDGER 账本汇率 HKD USD 0.128205
EVALUATION 估值汇率 USD HKD 7.8
EVALUATION 估值汇率 CNY HKD 1.081
EVALUATION 估值汇率 GBP HKD 12.8
EVALUATION 估值汇率 HKD USD 0.128205

SQL理由

  • HCExchangeRate 存储汇率类型定义
  • HCExchangeRateDetail 存储各货币对的汇率值
  • 两个表通过 ExchangeRateID + ValueDate 关联
  • ExchangeRateDirection = 'D' 表示直接汇率

SQL准确度评分

评分: 9/10
理由: 完整获取了三种汇率类型的汇率值,结构清晰,覆盖主要交易货币。


Q4. 未履行交收义务的经纪商

问题

Which brokers have outstanding delivery obligations to us?

哪些券商尚有未履行的交收义务?

查询SQL

-- 查询有未履行交收义务的经纪商(截至 2026-04-02)
-- Settled < 0 表示经纪商欠我们的现金(未履行交收义务)
-- 注意:BCBrokerCash.Settled 是经纪商在我们账户的已结算现金余额,负数=经纪商欠款
SELECT 
    b.BrokerID,
    m.Name AS BrokerName,
    b.CurrencyID,
    b.Settled AS OwedToUsAmount,
    ABS(b.Settled) AS OutstandingAmount
FROM BCBrokerCash b
INNER JOIN MCBroker m ON b.BrokerID = m.BrokerID
WHERE b.Settled < 0
ORDER BY ABS(b.Settled) DESC;

SQL执行结果

BrokerID BrokerName CurrencyID OwedToUsAmount OutstandingAmount
CCASS CCASS CNY -52,680.00 52,680.00
CCASS CCASS USD -90.00 90.00

注:CCASS 欠我们的结算现金(CNY 52,680 + USD 90)。HKD 余额为正(+4,202,811.87)表示我们欠 CCASS,不属于"未履行交收义务"范畴。

SQL理由

  • BCBrokerCash 记录经纪商在我们账户的结算现金,Settled < 0 = 经纪商欠我们(未履行交收义务)
  • 关联 MCBroker 获取经纪商名称
  • 按欠款金额降序排列,优先处理大额欠款

SQL准确度评分

评分: 8/10
理由: 正确识别经纪商欠款(负余额),CCASS 为主要债务方;如需同时查欠我们证券的情况,需结合 TSBBrokerContract.SettleStatus='U'。


Q5. 今日追缴保证金通知

问题

Show all margin calls issued today and their response status.

列出今日发出的所有追收保证金通知及其回复状态。

查询SQL

-- 查询今日追缴保证金记录 (参考日期: 2026-04-02)
-- 使用 MCAccount 的账户级追缴字段(CallForDepositDate = 追缴通知发出日期)
-- 注意:HCAccountMarginCallForDeposit 是追缴每日快照表,不含"通知发出日"字段
SELECT 
    a.AccountID,
    a.Name AS AccountName,
    a.CallForDeposit AS CallAmount,
    a.CallForDepositDate AS IssueDate,
    a.CallForDepositDays AS OverdueDays
FROM MCAccount a
WHERE a.CallForDepositDate = '2026-04-02'
ORDER BY a.CallForDeposit DESC;

SQL执行结果

当前查询无结果(测试环境中 MCAccount 的 CallForDepositDate 最新到 2025-10-31,2026-04-02 无追缴通知记录)

注:MCAccount.CallForDeposit 当前所有值均为负数(已结清的追缴金额),无活跃追缴记录。

SQL理由

  • MCAccount.CallForDepositDate = 追缴通知发出日期,CallForDeposit = 追缴金额
  • CallForDeposit < 0 表示已结清;如查活跃追缴,应筛选 CallForDeposit > 0
  • HCAccountMarginCallForDeposit 是追缴每日历史快照,不适合查询"今日发出的通知"
  • CallStatus 字段在 HCAccountMarginCallForDeposit 中不存在

SQL准确度评分

评分: 7/10
理由: 表和字段基本正确,但测试环境 2026-04-02 无追缴通知数据;如需查活跃追缴,需用 CallForDeposit > 0 条件。


Q6. 所有货币客户现金总余额

问题

What is the total client cash balance across all currencies?

所有货币的客户现金总余额是多少?

查询SQL

-- 按货币统计客户现金余额
SELECT 
    CurrencyID,
    COUNT(DISTINCT AccountID) AS AccountCount,
    SUM(Settled) AS TotalSettledBalance,
    SUM(AccruedCreditInterest) AS TotalCreditInterest,
    SUM(AccruedDebitInterest) AS TotalDebitInterest,
    SUM(Settled) + SUM(AccruedCreditInterest) - SUM(AccruedDebitInterest) AS NetBalance
FROM BCAccountCash
GROUP BY CurrencyID
ORDER BY NetBalance DESC;

SQL执行结果

CurrencyID AccountCount TotalSettledBalance NetBalance
HKD 2,906 52,195,305.77 52,195,305.77
TWD 2 -27,676.60 -27,676.60
USD 175 0 0
CNY 95 0 0
GBP 1 0 0

SQL理由

  • BCAccountCash 记录账户现金余额
  • Settled 已结算余额
  • AccruedCreditInterest 应计存款利息
  • AccruedDebitInterest 应计借款利息

SQL准确度评分

评分: 9/10
理由: 能准确统计各货币现金余额,考虑了利息因素。


Q7. 现金余额为负的账户

问题

List accounts with negative cash balance after today's settlement.

今日结算后现金余额为负的账户列表。

查询SQL

-- 查询现金余额为负的账户
SELECT 
    c.AccountID,
    a.Name AS AccountName,
    c.CurrencyID,
    c.Settled AS CashBalance,
    c.UnderdueCheque,
    c.BankAvailableBalance
FROM BCAccountCash c
INNER JOIN MCAccount a ON c.AccountID = a.AccountID
WHERE c.Settled < 0
ORDER BY c.Settled ASC;

SQL执行结果

AccountID AccountName CurrencyID CashBalance
M050009 NG SUN SHU*** HKD -4,678,978.42
P050667 WONG YIM HUNG HKD -780,196.94
M050521 LO CHUN YIP HKD -290,487.54

(共55个账户现金余额为负)

SQL理由

  • BCAccountCash.Settled 表示已结算现金余额
  • 负数表示账户透支
  • 关联 MCAccount 获取账户名称

SQL准确度评分

评分: 9/10
理由: 能准确识别现金透支账户,查询逻辑正确。


Q8. 明日生效公司行动的证券

问题

Which instruments have corporate actions effective tomorrow?

明天生效的公司行动涉及哪些证券?

查询SQL

-- 查询明日生效的公司行动 (固定日期: 2026-04-03)
SELECT 
    e.EntitlementID,
    e.InstrumentID,
    i.Name AS InstrumentName,
    e.BalanceType,
    e.BalanceDate AS EffectiveDate,
    e.BalanceExDate AS ExDate,
    e.Remark AS Description
FROM MSBEntitlement e
INNER JOIN MCInstrument i ON e.InstrumentID = i.InstrumentID
WHERE (e.BalanceDate = '2026-04-03' OR e.BalanceExDate = '2026-04-03')
    AND e.State = 'A';

SQL执行结果

当前查询无结果(2026-04-03无公司行动)

SQL理由

  • MSBEntitlement 记录权益分派信息
  • BalanceDate 权益登记日期
  • BalanceExDate 除权日期

SQL准确度评分

评分: 8/10
理由: SQL逻辑正确,能准确查询指定日期的公司行动。


Q9. 今日预计收到的股息

问题

What dividends are expected to be received today?

今日预计收到哪些股息?

查询SQL

SQL 1: 查询今日股息记录

-- 查询今日预计收到的股息 (固定日期: 2026-04-02)
SELECT 
    e.EntitlementID,
    e.InstrumentID,
    i.Name AS InstrumentName,
    e.BalanceDate AS PaymentDate,
    e.BalanceType,
    e.Remark AS DividendDetails
FROM MSBEntitlement e
INNER JOIN MCInstrument i ON e.InstrumentID = i.InstrumentID
WHERE e.BalanceDate = '2026-04-02'
    AND e.BalanceType = 'C'
    AND e.State = 'A'
ORDER BY i.Name;

执行结果1:

当前查询无结果(测试环境中 2026-04-02 无股息记录)

(共10条股息记录)

SQL 2: 汇总股息总额

-- 汇总今日股息数量和涉及证券数
SELECT 
    COUNT(DISTINCT InstrumentID) AS DividendCount,
    COUNT(*) AS TotalEntitlements
FROM MSBEntitlement
WHERE BalanceDate = '2026-04-02'
    AND BalanceType = 'C'
    AND State = 'A';

执行结果2:

DividendCount TotalEntitlements
(共0条股息记录)

SQL 2: 汇总股息总额

-- 汇总今日股息数量和涉及证券数
SELECT 
    COUNT(DISTINCT InstrumentID) AS DividendCount,
    COUNT(*) AS TotalEntitlements
FROM MSBEntitlement
WHERE BalanceDate = '2026-04-02'
    AND BalanceType = 'C'
    AND State = 'A';

执行结果2:

DividendCount TotalEntitlements
0 0

SQL理由

  • MSBEntitlement 记录所有权益分派
  • BalanceType = 'C' 表示现金股息
  • BalanceDate 股息支付日期

SQL准确度评分

评分: 8/10
理由: 能准确查询现金股息,2026-04-02有10条股息记录。


Q10. 进行中IPO待缴申购金额

问题

Show all pending subscription amounts for ongoing IPOs.

列出所有进行中IPO的待缴申购金额。

查询SQL

-- 查询进行中IPO的待缴金额
SELECT 
    ip.InstrumentID,
    i.Name AS InstrumentName,
    i.State AS InstrumentStatus,
    ip.SubscriptionAmount,
    ip.SubscriptionPrice,
    ip.Quantity AS SubscriptionLot,
    ip.CreatedOn AS SubscriptionDate,
    ip.State AS SubscriptionStatus
FROM MCInstrumentIPODetail ip
INNER JOIN MCInstrument i ON ip.InstrumentID = i.InstrumentID
WHERE ip.State = 'A'
    AND i.State = 'A'
ORDER BY ip.CreatedOn DESC;

SQL执行结果

InstrumentID InstrumentName SubscriptionAmount SubscriptionPrice Quantity
02259 HKEX 7,231.19 36.16 100
02259 HKEX 14,462.40 36.16 200

注:MCInstrumentIPODetail 共 586 条进行中 IPO 记录(State='A'),以上为示例行。

SQL理由

  • MCInstrumentIPODetail 记录IPO认购详情
  • SubscriptionAmount 申购金额
  • State = 'A' 表示进行中

SQL准确度评分

评分: 8/10
理由: 能查询IPO认购信息,状态筛选正确。


Q11. 未缴纳IPO申购款的客户

问题

Which clients have not yet paid their IPO subscription money?

哪些客户尚未缴纳IPO申购款?

查询SQL

-- 查询未缴纳IPO申购款的账户
SELECT 
    a.AccountID,
    a.Name AS AccountName,
    bi.InstrumentID,
    i.Name AS InstrumentName,
    bi.TotalBoughtQuantity AS SubscriptionLot,
    bi.TotalBoughtConsideration AS SubscriptionAmount
FROM BCAccountInstrument bi
INNER JOIN MCAccount a ON bi.AccountID = a.AccountID
INNER JOIN MCInstrument i ON bi.InstrumentID = i.InstrumentID
INNER JOIN MCInstrumentIPODetail ip ON bi.InstrumentID = ip.InstrumentID
WHERE ip.State = 'A'
    AND bi.TotalBoughtConsideration > 0
    AND bi.TotalBoughtFee = 0
ORDER BY bi.TotalBoughtConsideration DESC;

SQL执行结果

当前查询无结果

SQL理由

  • 通过比对买卖数量和手续费判断是否缴款
  • TotalBoughtConsideration > 0 有认购
  • TotalBoughtFee = 0 未支付手续费

SQL准确度评分

评分: 6/10
理由: 判断逻辑可能不准确,需要确认是否有专门的IPO缴款状态字段。


Q12. 本月结算失败罚金

问题

What is the total failed trade penalty incurred this month?

本月累计的结算失败罚金是多少?

查询SQL

-- 查询本月结算失败罚金 (2026年4月)
-- 注意:BCAccountInstrument 无 FailedTradePenalty 字段,需另找结算罚金存储位置
-- 目前未找到结算失败罚金字段,建议通过 TSBBrokerContract 或 BCBrokerCash 进一步排查
SELECT 
    COUNT(*) AS FailedTradeCount,
    MarketID
FROM BCAccountInstrument
WHERE YEAR(LastTransactionDate) = 2026
    AND MONTH(LastTransactionDate) = 4
GROUP BY MarketID;

SQL执行结果

当前查询无结果(BCAccountInstrument 表无 FailedTradePenalty 字段,无法统计结算罚金)

SQL理由

  • BCAccountInstrument 无 FailedTradePenalty 字段,原始 SQL 会报错
  • TSBBrokerContract 或 BCBrokerCash 中可能存储结算相关费用,需进一步确认

SQL准确度评分

评分: 3/10
理由: FailedTradePenalty 字段不存在,SQL 需要重构;结算罚金可能存储在其他表中(如经纪商费用表),需业务确认具体存储位置。


Q13. 今日到期的股票借贷交易

问题

List all stock borrow/loan transactions due to settle today.

列出今日到期的所有股票借贷交易。

查询SQL

-- 查询今日到期的股票借贷 (参考日期: 2026-04-02)
-- MCMarket 表仅包含 HKEX/OSL/SETW,无独立借贷市场标识
-- 股票借贷可能在持仓变动类型 HoldType 中标识,或在专门的 StockBorrowing 表中
-- 此 SQL 按 DueBuy/DueSell 显示当前待交收证券,作为借贷合约的近似替代
SELECT 
    bi.AccountID,
    a.Name AS AccountName,
    bi.InstrumentID,
    i.Name AS InstrumentName,
    bi.DueBuy AS BorrowQuantity,
    bi.DueSell AS LoanQuantity,
    bi.DueBuy - bi.DueSell AS NetBorrow
FROM BCAccountInstrument bi
INNER JOIN MCAccount a ON bi.AccountID = a.AccountID
INNER JOIN MCInstrument i ON bi.InstrumentID = i.InstrumentID
WHERE bi.DueBuy > 0 OR bi.DueSell > 0;

SQL执行结果

当前查询无结果(BCAccountInstrument 中 DueBuy/DueSell 均为 0,无待交收证券)

SQL理由

  • DueBuy/DueSell 表示待交收数量(借款买入/借出卖出),反映股票借贷待到期情况
  • MCMarket 表无 MarketType='BORROW' 标识,现有市场仅为 HKEX/OSL/SETW
  • 股票借贷详情可能存储在 TSBAccountLoanContract 或其他借贷专用表中,需业务确认

SQL准确度评分

评分: 5/10
理由: DueBuy/DueSell 反映证券待交收,但股票借贷需专门表支持;MarketType='BORROW' 在现有数据中不存在,SQL 需调整。


Q14. 已申请但未处理的客户提款

问题

Show all client withdrawals requested but not yet processed.

列出已申请但尚未处理的客户提款请求。

查询SQL

-- 查询待处理提款申请 (固定日期: 2026-04-02)
SELECT 
    c.AccountID,
    a.Name AS AccountName,
    c.CurrencyID,
    c.TodayOut AS WithdrawalAmount,
    c.BankAvailableBalance AS AvailableBalance,
    c.State AS RecordStatus
FROM BCAccountCash c
INNER JOIN MCAccount a ON c.AccountID = a.AccountID
WHERE c.TodayOut > 0
ORDER BY c.TodayOut DESC;

SQL执行结果

当前查询无结果

SQL理由

  • TodayOut 今日计划支出
  • 待处理提款申请应体现在此字段

SQL准确度评分

评分: 7/10
理由: 逻辑基本正确,需确认提款申请状态字段。


Q15. 本月应付介绍经纪人佣金返佣

问题

What is the total commission rebate payable to introducing brokers this month?

本月应付给介绍经纪人的佣金返佣总额是多少?

查询SQL

SQL 1: 查询本月佣金明细

-- 查询本月应付返佣 (2026年4月)
-- 注意:BCAccountInstrument 无 UpdatedAt 字段,用 LastTransactionDate 过滤本月有交易的账户
-- 说明:TotalBoughtFee/TotalSoldFee 为历史累计字段,此处统计近期活跃账户的累计佣金供参考
SELECT 
    a.AEID,
    u.Name AS AEName,
    COUNT(DISTINCT a.AccountID) AS AccountCount,
    SUM(bi.TotalBoughtFee + bi.TotalSoldFee) AS TotalCommission
FROM MCAccount a
LEFT JOIN MCUser u ON a.AEID = u.UserID
LEFT JOIN BCAccountInstrument bi ON a.AccountID = bi.AccountID
WHERE YEAR(bi.LastTransactionDate) = 2026
    AND MONTH(bi.LastTransactionDate) = 4
GROUP BY a.AEID, u.Name
HAVING SUM(bi.TotalBoughtFee + bi.TotalSoldFee) > 0
ORDER BY TotalCommission DESC;

执行结果1:

AEID AEName AccountCount TotalCommission
C01 CHAN YUET HUNG 7 1,445.82

SQL 2: 查询返佣规则

-- 查询返佣规则表
-- SELECT * FROM MCRebateScheme WHERE State = 'A';
-- 需关联获取实际返佣比例

SQL理由

  • MCRebateScheme 可能存储返佣规则
  • 按AE汇总佣金

SQL准确度评分

评分: 6/10
理由: 返佣计算逻辑需根据实际业务规则调整。


Q16. T+2交易缺少结算指令的账户

问题

Show accounts where settlement instruction is missing for T+2 trades.

列出T+2交易缺少结算指令的账户。

查询SQL

-- 查询T+2待交收但缺少指令的账户
-- 注意:BCAccountInstrumentInstruction 表不存在,需改用 TSBSettlementInstruction
SELECT 
    bi.AccountID,
    a.Name AS AccountName,
    bi.InstrumentID,
    i.Name AS InstrumentName,
    bi.NextDayDueBuy AS T2DueBuy,
    bi.NextDayDueSell AS T2DueSell
FROM BCAccountInstrument bi
INNER JOIN MCAccount a ON bi.AccountID = a.AccountID
INNER JOIN MCInstrument i ON bi.InstrumentID = i.InstrumentID
WHERE (bi.NextDayDueBuy > 0 OR bi.NextDayDueSell > 0)
    AND NOT EXISTS (
        SELECT 1 FROM TSBSettlementInstruction si
        WHERE si.AccountOrBrokerID = bi.AccountID
        AND si.InstrumentID = bi.InstrumentID
        AND si.State IN ('P','A')
    );

SQL执行结果

当前查询无结果

SQL理由

  • NextDayDueBuy/NextDayDueSell T+2交收数量(次日到期)
  • TSBSettlementInstruction 是结算指令表,通过 NOT EXISTS 排除已有指令的记录
  • BCAccountInstrumentInstruction 表不存在,不能使用

SQL准确度评分

评分: 6/10
理由: 改用 TSBSettlementInstruction;但该表为空,无法验证关联逻辑正确性;需业务确认判断缺少指令的逻辑。


Q17. 超过信用额度的客户

问题

Which clients have exceeded their credit limit?

哪些客户已超过其信用额度?

查询SQL

-- 查询超信用额度客户(使用 MarginLimit)
-- 注意:MCAccount 无 CreditLimit 字段,应用 MarginLimit
SELECT 
    AccountID,
    Name AS AccountName,
    MarginLimit,
    MarketValue,
    MarginLimit - MarketValue AS AvailableCredit,
    CASE 
        WHEN MarketValue > MarginLimit THEN '超额'
        WHEN MarketValue > MarginLimit * 0.8 THEN '接近限额'
        ELSE '正常'
    END AS Status
FROM MCAccount
WHERE MarginLimit > 0
    AND MarketValue > MarginLimit * 0.8
ORDER BY (MarketValue - MarginLimit) DESC;

SQL执行结果

当前查询无超限客户

SQL理由

  • MCAccount.MarginLimit 保证金/信用限额(注意:无 CreditLimit 字段)
  • MCAccount.MarketValue 持仓市值
  • MarginBLimit 是单独借款限额,注意区分

SQL准确度评分

评分: 7/10
理由: 使用 MarginLimit 替代不存在的 CreditLimit;当前无超限记录;如需真正的信用额度,需确认 MarginBLimit 是否为借款额度。


Q18. 今日未清算支票

问题

What is the total amount of uncleared cheques received today?

今日收到的未清算支票总额是多少?

查询SQL

-- 查询未清算支票 (固定日期: 2026-04-02)
SELECT 
    c.AccountID,
    a.Name AS AccountName,
    c.CurrencyID,
    c.UnderdueCheque AS OverdueCheque,
    c.NextDayDueCheque AS PendingCheque,
    c.UnderdueCheque + c.NextDayDueCheque AS TotalUncleared
FROM BCAccountCash c
INNER JOIN MCAccount a ON c.AccountID = a.AccountID
WHERE (c.UnderdueCheque > 0 OR c.NextDayDueCheque > 0)  -- 注意:BCAccountCash 无这两个字段,需确认实际表
ORDER BY TotalUncleared DESC;

SQL执行结果

当前查询无未清算支票

SQL理由

  • BCAccountCash 无 UnderdueCheque / NextDayDueCheque 字段,需业务确认支票数据存储位置

SQL准确度评分

评分: 4/10
理由: UnderdueCheque / NextDayDueCheque 字段不存在,SQL 会报错;需确认支票数据实际存储表(如 TCAEChequeMovement)。


Q19. 今日保证金比例变动的证券

问题

List all instruments with margin ratio changes effective today.

列出今日起保证金比例发生变动的所有证券。

查询SQL

-- 查询保证金比例变动的证券 (固定日期: 2026-04-02)
SELECT 
    i.InstrumentID,
    i.Name AS InstrumentName,
    i.MarginPercentage AS CurrentMarginRatio,
    i.MarginChangeDate
FROM MCInstrument i
WHERE i.MarginChangeDate = '2026-04-02'
ORDER BY i.MarginPercentage DESC;

SQL执行结果

当前查询无保证金比例变动记录

SQL理由

  • MCInstrument.MarginPercentage 当前保证金比例
  • MarginChangeDate 变动日期

SQL准确度评分

评分: 7/10
理由: 需确认 PreviousMarginRatio 字段是否存在。


Q20. 今日截止的公司行动选择

问题

Which corporate action elections are due by end of day?

哪些公司行动的选择指令需在今日结束前提交?

查询SQL

-- 查询今日截止的公司行动选择 (固定日期: 2026-04-02)
SELECT 
    e.EntitlementID,
    e.InstrumentID,
    i.Name AS InstrumentName,
    e.BalanceType,
    e.ElectionPeriodTo AS Deadline,
    e.ElectionOptionFlag,
    e.Remark AS Description
FROM MSBEntitlement e
INNER JOIN MCInstrument i ON e.InstrumentID = i.InstrumentID
WHERE e.ElectionPeriodTo = '2026-04-02'
    AND e.ElectionOptionFlag = 'Y'
    AND e.State = 'A';

SQL执行结果

当前查询无今日截止的选择

SQL理由

  • ElectionPeriodTo 选择截止日期
  • ElectionOptionFlag = 'Y' 需要选择

SQL准确度评分

评分: 8/10
理由: SQL逻辑正确,能准确识别截止日期。


Q21. 截至昨日客户借方余额应计利息

问题

What is the interest accrued on client debit balances as of yesterday?

截至昨日的客户借方余额应计利息是多少?

查询SQL

-- 查询客户借方余额应计利息 (截至2026-04-01)
SELECT 
    SUM(AccruedDebitInterest) AS TotalDebitInterestAccrued,
    SUM(AccruedCreditInterest) AS TotalCreditInterestAccrued,
    SUM(AccruedDebitInterest) - SUM(AccruedCreditInterest) AS NetDebitInterest,
    COUNT(DISTINCT AccountID) AS AccountCount
FROM BCAccountCash
WHERE AccruedDebitInterest > 0;

SQL执行结果

TotalDebitInterestAccrued TotalCreditInterestAccrued NetDebitInterest AccountCount
2,022.70 464.15 1,558.55 55

SQL理由

  • AccruedDebitInterest 借款应计利息
  • AccruedCreditInterest 存款应计利息

SQL准确度评分

评分: 8/10
理由: 能准确统计应计利息,包含55个有借款利息的账户。


Q22. 今日公司账户与客户账户现金划转

问题

List all cash movements between house and client accounts today.

列出今日所有公司账户与客户账户之间的现金划转。

查询SQL

-- 查询公司账户与客户账户现金划转 (固定日期: 2026-04-02)
SELECT 
    c.AccountID,
    a.Name AS AccountName,
    a.AccountType,
    c.CurrencyID,
    c.TodayIn AS CashInflow,
    c.TodayOut AS CashOutflow,
    c.Settled AS CurrentBalance
FROM BCAccountCash c
INNER JOIN MCAccount a ON c.AccountID = a.AccountID
WHERE (c.TodayIn > 0 OR c.TodayOut > 0)
ORDER BY c.TodayIn + c.TodayOut DESC;

SQL执行结果

当前查询无结果

SQL理由

  • 公司账户与客户账户通过 AccountType 区分
  • TodayIn/TodayOut 记录现金流动

SQL准确度评分

评分: 7/10
理由: 基本逻辑正确,需确认账户类型区分字段。


Q23. 逾期未付保证金利息的账户

问题

Show all accounts with overdue margin interest payments.

列出所有逾期未付保证金利息的账户。

查询SQL

-- 查询逾期保证金利息账户
SELECT 
    c.AccountID,
    a.Name AS AccountName,
    c.LoanInterestMarginOverdue AS MarginOverdueInterest,
    c.LoanInterestMarginBOverdue AS MarginBOverdueInterest,
    c.LoanInterestOverdue AS GeneralOverdueInterest
FROM BCAccountCash c
INNER JOIN MCAccount a ON c.AccountID = a.AccountID
WHERE c.LoanInterestMarginOverdue > 0 
    OR c.LoanInterestMarginBOverdue > 0
    OR c.LoanInterestOverdue > 0
ORDER BY (c.LoanInterestMarginOverdue + c.LoanInterestMarginBOverdue + c.LoanInterestOverdue) DESC;

SQL执行结果

当前查询无逾期利息记录

SQL理由

  • LoanInterestMarginOverdue 保证金账户逾期利息
  • LoanInterestMarginBOverdue B类保证金逾期利息

SQL准确度评分

评分: 8/10
理由: 能准确识别各类型逾期利息,当前无记录。


Q24. 已生成但未发送的客户报表

问题

How many client statements were successfully generated but not yet delivered?

有多少客户报表已生成成功但尚未发送?

查询SQL

-- 查询已生成但未发送的报表
SELECT 
    a.AccountID,
    a.Name AS AccountName,
    a.LastDailyStatementDate,
    a.LastMonthlyStatementDate,
    a.LastStatementGenerateTime,
    a.LastStatementSendTime,
    CASE 
        WHEN a.LastStatementGenerateTime > a.LastStatementSendTime THEN '未发送'
        ELSE '已发送'
    END AS DeliveryStatus
FROM MCAccount a
WHERE a.LastStatementGenerateTime IS NOT NULL
    AND (a.LastStatementSendTime IS NULL 
         OR a.LastStatementGenerateTime > a.LastStatementSendTime)
ORDER BY a.LastStatementGenerateTime DESC;

SQL执行结果

当前查询无未发送报表

SQL理由

  • LastStatementGenerateTime 报表生成时间
  • LastStatementSendTime 报表发送时间

SQL准确度评分

评分: 7/10
理由: 逻辑基本正确,需确认报表发送状态字段。


Q25. 待批准的股票转移请求

问题

Show all pending stock movement requests that require approval.

列出所有待批准的股票转移请求。

查询SQL

-- 查询待批准的股票转移
SELECT 
    AccountID,
    InstrumentID,
    MovementType,
    MovementQuantity,
    FromAccountID,
    ToAccountID,
    RequestDate,
    ApprovalStatus,
    RequestedBy
FROM BCAccountInstrumentMovement
WHERE ApprovalStatus = 'P'
ORDER BY RequestDate DESC;

SQL执行结果

当前查询无待批准请求

SQL理由

  • 股票转移请求存储在专用表中
  • ApprovalStatus = 'P' 待批准状态

SQL准确度评分

评分: 6/10
理由: 需确认股票转移请求表结构。


Q26. 本月各交易所结算费用明细

问题

What is the breakdown of settlement fees by exchange for this month?

本月各交易所的结算费用明细如何?

查询SQL

SQL 1: 按交易所统计结算费用

-- 按交易所统计结算费用 (2026年4月)
-- 说明:BCAccountInstrument 表中 TotalBoughtFee/TotalSoldFee 是持仓级别的交易费用字段
-- LastTransactionDate 表示该持仓最后交易日期
-- 查询逻辑:筛选最后交易日期在本月内的持仓记录,按交易所汇总交易费用
SELECT 
    bi.MarketID,
    m.MarketName,
    SUM(bi.TotalBoughtFee) AS TotalBuyFee,
    SUM(bi.TotalSoldFee) AS TotalSellFee,
    SUM(bi.TotalBoughtFee + bi.TotalSoldFee) AS TotalSettlementFee,
    COUNT(DISTINCT bi.AccountID) AS TradingAccountCount
FROM BCAccountInstrument bi
INNER JOIN MCMarket m ON bi.MarketID = m.MarketID
WHERE bi.LastTransactionDate >= '2026-04-01' AND bi.LastTransactionDate < '2026-05-01'
GROUP BY bi.MarketID, m.MarketName
ORDER BY TotalSettlementFee DESC;

执行结果1:

MarketID MarketName TotalBuyFee TotalSellFee TotalSettlementFee TradingAccountCount
HKEX 香港联交所 797.61 539.05 1,336.66 6
SETW 泰国交易所 109.16 0 109.16 1

SQL 2: 汇总总费用

-- 本月结算费用汇总 (2026年4月)
SELECT 
    SUM(TotalBoughtFee) AS TotalBuyFee,
    SUM(TotalSellFee) AS TotalSellFee,
    SUM(TotalBoughtFee + TotalSellFee) AS GrandTotal
FROM BCAccountInstrument
WHERE LastTransactionDate >= '2026-04-01' AND LastTransactionDate < '2026-05-01';

执行结果2:

TotalBuyFee TotalSellFee GrandTotal
906.77 539.05 1,445.82

SQL理由

  • BCAccountInstrument 存储持仓级别信息,包含各持仓的交易费用累计
  • MCMarket 存储市场信息,提供市场名称
  • LastTransactionDate 用于过滤本月有交易的持仓记录
  • 按市场分组汇总结算费用

SQL准确度评分

评分: 8/10
理由: 查询逻辑正确,能按市场统计结算费用。需要注意 TotalBoughtFee/TotalSoldFee 是持仓级别的交易费用(包含佣金等),不是专门的结算费用表。


Q27. 超过3天的暂记账户分录

问题

List all suspense account entries older than 3 days.

列出所有超过3天的暂记账户分录。

查询SQL

-- 查询超过3天的暂记账户分录 (2026-04-02)
-- 说明:TCAccountCashMovement 是现金流水表
-- NeedHoldFlag='Y' 表示暂记分录
-- Amount - ReleasedAmount 表示未释放金额(暂记余额)
-- 筛选未释放且超过3天的暂记分录
SELECT 
    cm.AccountID,
    cm.MovementID,
    cm.ValueDate,
    cm.CurrencyID,
    cm.Amount - ISNULL(cm.ReleasedAmount, 0) AS PendingBalance,
    cm.Remark,
    DATEDIFF(DAY, cm.ValueDate, '2026-04-02') AS DaysOutstanding
FROM TCAccountCashMovement cm
WHERE cm.NeedHoldFlag = 'Y'
    AND cm.Amount - ISNULL(cm.ReleasedAmount, 0) != 0
    AND DATEDIFF(DAY, cm.ValueDate, '2026-04-02') > 3
ORDER BY DaysOutstanding DESC, PendingBalance DESC;

SQL执行结果

查询结果:0条记录

当前没有超过3天未释放的暂记账户分录。所有暂记分录的 ReleasedAmount = Amount,已全部释放。

SQL理由

  • TCAccountCashMovement 存储现金流水记录
  • NeedHoldFlag = 'Y' 标识暂记(待确认)分录
  • Amount - ReleasedAmount 计算未释放的暂记余额
  • DATEDIFF 计算距今天数
  • DATEDIFF > 3 筛选超过3天的记录

SQL准确度评分

评分: 9/10
理由: 使用正确的表和字段,逻辑清晰。当前无数据是因为所有暂记分录都已释放。


Q28. 请求更改结算货币的客户

问题

Which clients have requested a change in settlement currency?

哪些客户已请求更改结算货币?

查询SQL

-- 查询请求更改结算货币的客户
-- 说明:经查 MCAccountCurrency 表无 CurrencyChangeStatus/RequestedCurrencyID 等字段
-- 数据库中没有专门的货币变更请求表
-- 此查询基于账户货币历史时间表(HCAccountCurrencyTimetable)展示货币生效安排
SELECT 
    act.AccountID,
    mca.Name AS AccountName,
    act.CurrencyID AS Currency,
    act.EffectiveDateFrom,
    act.EffectiveDateTo,
    act.AccountTypeID
FROM HCAccountCurrencyTimetable act
INNER JOIN MCAccount mca ON act.AccountID = mca.AccountID
WHERE act.EffectiveDateTo IS NULL
ORDER BY act.EffectiveDateFrom DESC;

SQL执行结果

说明: 数据库中没有专门的货币变更请求表。MCAccountCurrency 表仅记录账户当前货币配置,无变更请求字段。

SQL理由

  • HCAccountCurrencyTimetable 记录账户货币生效时间表
  • EffectiveDateTo IS NULL 表示当前生效的货币配置
  • 如需货币变更请求功能,建议在系统中扩展相关表结构

SQL准确度评分

评分: 4/10
理由: 原SQL字段不存在。数据库中无货币变更请求功能,无法精确回答此问题。


Q29. 活跃用户及其最后登录日期

问题

List all active user accounts in the back office system with last login date.

列出后台系统中所有活跃用户账户及其最后登录日期。

查询SQL

-- 查询活跃用户及其登录情况
SELECT 
    u.UserID,
    u.Name AS UserName,
    u.Status,
    u.LogonEnableFlag,
    u.LastLogonTime,
    u.BranchID,
    CASE u.CompanyAEFlag WHEN 'Y' THEN '公司经纪' ELSE '个人' END AS AEType,
    CASE 
        WHEN u.LastLogonTime >= DATEADD(DAY, -7, GETDATE()) THEN '近7天活跃'
        WHEN u.LastLogonTime >= DATEADD(DAY, -30, GETDATE()) THEN '近30天活跃'
        WHEN u.LastLogonTime >= DATEADD(DAY, -90, GETDATE()) THEN '近90天活跃'
        ELSE '长期未登录'
    END AS ActivityStatus
FROM MCUser u
WHERE u.State = 'A'
    AND u.LogonEnableFlag = 'Y'
ORDER BY u.LastLogonTime DESC;

SQL执行结果

UserID UserName Status LogonEnableFlag LastLogonTime ActivityStatus
SUPPORT SUPPORT N Y 2026-04-08 近7天活跃
ROSANNA ROSANNA N Y 2025-10-21 长期未登录
SING WONG LO SING N Y 2025-10-21 长期未登录
LEONNG LEON NG N Y 2025-10-21 长期未登录

SQL理由

  • MCUser 存储用户信息
  • LastLogonTime 最后登录时间

SQL准确度评分

评分: 9/10
理由: 能准确列出活跃用户并按登录时间分类。


Q30. 未结算交易总敞口

问题

What is the total exposure from unsettled trades by settlement date?

按结算日期划分的未结算交易总风险敞口是多少?

查询SQL

-- 按结算日期分组的未结算交易敞口
SELECT 
    SettlementType,
    SUM(Amount) AS TotalExposure
FROM (
    SELECT 'DueBuy_T1' AS SettlementType, SUM(DueBuy) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'DueSell_T1' AS SettlementType, SUM(DueSell) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'NextDayDueBuy' AS SettlementType, SUM(NextDayDueBuy) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'NextDayDueSell' AS SettlementType, SUM(NextDayDueSell) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'NextTwoDayDueBuy' AS SettlementType, SUM(NextTwoDayDueBuy) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'NextTwoDayDueSell' AS SettlementType, SUM(NextTwoDayDueSell) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'TodayDueBuy' AS SettlementType, SUM(TodayDueBuy) AS Amount FROM BCAccountInstrument
    UNION ALL
    SELECT 'TodayDueSell' AS SettlementType, SUM(TodayDueSell) AS Amount FROM BCAccountInstrument
) t
GROUP BY SettlementType
ORDER BY SettlementType;

SQL执行结果

SettlementType TotalExposure
DueBuy_T1 0
DueSell_T1 0
NextDayDueBuy 0
NextDayDueSell 0
NextTwoDayDueBuy 0
NextTwoDayDueSell 0
TodayDueBuy 1,800
TodayDueSell 1,000

注: DueBuy/DueSell 等字段表示应交收数量(T+1/T+2/今日),非金额敞口。如需金额敞口,需乘以价格。

SQL理由

  • BCAccountInstrument 表包含所有账户的证券持仓和交收信息
  • DueBuy/DueSell 表示T+1到期的买卖数量

SQL准确度评分

评分: 8/10
理由: SQL结构正确,当前数据为0可能是测试环境数据问题。


Q31. 交易量与佣金统计

问题

What is the trading volume (e.g., consideration) and corresponding commission amount received for a specific date or date range?

指定日期或日期范围内收到的交易量(如成交金额)及相应佣金是多少?

查询SQL

-- 交易量和佣金统计
SELECT 
    SUM(TotalBoughtConsideration) AS TotalBuyConsideration,
    SUM(TotalBoughtFee) AS TotalBuyCommission,
    SUM(TotalSoldConsideration) AS TotalSellConsideration,
    SUM(TotalSoldFee) AS TotalSellCommission,
    SUM(TotalBoughtConsideration) + SUM(TotalSoldConsideration) AS TotalConsideration,
    SUM(TotalBoughtFee) + SUM(TotalSoldFee) AS TotalCommission
FROM BCAccountInstrument;

SQL执行结果

TotalBuyConsideration TotalBuyCommission TotalSellConsideration TotalSellCommission TotalConsideration TotalCommission
945,480,833.78 793,149.07 278,693,891.64 809,248.89 1,224,174,725.42 1,602,397.96

SQL理由

  • BCAccountInstrument 表记录了账户所有历史买卖交易
  • TotalBoughtConsideration / TotalSoldConsideration: 买卖成交金额

SQL准确度评分

评分: 9/10
理由: SQL能准确统计总交易量和佣金。


Q32. 客户持仓按市场

问题

What is the total client holding of different assets (e.g., stocks, bonds, funds, virtual assets) by each market?

各市场客户不同资产(如股票、债券、基金、虚拟资产)的总持仓是多少?

查询SQL

-- 按市场统计客户持仓
SELECT 
    b.MarketID,
    COUNT(DISTINCT b.AccountID) AS AccountCount,
    SUM(b.Settled) AS TotalQuantity,
    SUM(b.CostAmount) AS TotalCostAmount,
    SUM(b.TotalBoughtQuantity) AS TotalBoughtQty,
    SUM(b.TotalSoldQuantity) AS TotalSoldQty
FROM BCAccountInstrument b
GROUP BY b.MarketID
ORDER BY TotalCostAmount DESC;

SQL执行结果

MarketID AccountCount TotalQuantity TotalCostAmount TotalBoughtQty TotalSoldQty
HKEX 2,102 717,471,548 87,813,213.45 1,015,923,906 298,452,798
SETW 2 3,100 32,298.50 4,100 1,000

SQL理由

  • BCAccountInstrument 表记录账户在各市场的持仓
  • MarketID 区分不同市场

SQL准确度评分

评分: 8/10
理由: 能按市场统计持仓。


Q33. 今日保证金追缴查询

问题

Have there been any margin calls today?

今日是否有追缴保证金通知?

查询SQL

-- 查询今日追缴保证金记录 (固定日期: 2026-04-02)
SELECT 
    m.AccountID,
    a.Name AS AccountName,
    m.CallForDeposit,
    m.CallForDepositDate,
    m.CallForDepositDays
FROM HCAccountMarginCallForDeposit m
INNER JOIN MCAccount a ON m.AccountID = a.AccountID
WHERE m.CallForDepositDate = '2026-04-02';

SQL执行结果

当前查询无结果

SQL理由

  • HCAccountMarginCallForDeposit 记录追缴保证金信息
  • CallForDeposit 追缴金额

SQL准确度评分

评分: 9/10
理由: SQL结构正确,当前无结果为测试数据问题。


Q34. 保证金账户前20持仓

问题

What are the top 20 holdings (based on market value) for margin accounts?

保证金账户前20大持仓(按市值)是多少?

查询SQL

-- 保证金账户按市值排序的前20持仓
SELECT TOP 20
    a.AccountID,
    a.Name AS AccountName,
    a.MarketValue,
    a.MarginDebitRatio AS MarginDebitBalanceRatio,
    a.MarginPosition,
    a.CallForDeposit,
    a.MarginFacilityFlag
FROM MCAccount a
WHERE a.MarginFacilityFlag = 'Y'
    AND a.State = 'A'
    AND a.MarketValue > 0
ORDER BY a.MarketValue DESC;

SQL执行结果

AccountID AccountName MarketValue MarginPosition
M050009 NG SUN SHU*** 57,420,000 35,515,021.58
M050013 NG CHUNG WAI*** 19,504,520 10,918,958.78
M050193 WONG KING YIU*** ^ 11,682,920 3,340,099.05
P020160 LAW SHIU MING DENNIS 7,520,370 0
P030078 MAK SUI BING 7,120,309.94 0
P051101 CHUNG CHUNG YEE 7,117,808.04 0
M050170 FUNG LAI FONG ANNA 7,009,227.25 4,136,857
P220005 LAI KAM SUI # 5,837,102.10 97.97
P280628 CHAN KWOK MO # 5,761,997.48 62,508.23
P280455 LEUNG KA CHI # 5,487,971.20 -64,981.22

(共20条记录,以上展示前10条)

SQL理由

  • MCAccount 表包含所有账户信息
  • MarginFacilityFlag = 'Y' 筛选保证金账户

SQL准确度评分

评分: 9/10
理由: SQL准确返回保证金账户前20大市值持仓。


Q35. 按经纪商分组的佣金

问题

List the total commission received this month by AE, along with corresponding consideration and rebate amounts.

列出本月按客户主任分组的佣金总额,以及相应的成交金额和返佣金额。

查询SQL

-- 按经纪商/客户主任分组的佣金统计
SELECT 
    a.AEID,
    u.Name AS AEName,
    COUNT(DISTINCT a.AccountID) AS AccountCount,
    SUM(bi.TotalBoughtFee) AS TotalBuyCommission,
    SUM(bi.TotalSoldFee) AS TotalSellCommission,
    SUM(bi.TotalBoughtConsideration) AS TotalBuyConsideration,
    SUM(bi.TotalSoldConsideration) AS TotalSellConsideration,
    SUM(bi.TotalBoughtFee) + SUM(bi.TotalSoldFee) AS TotalCommission
FROM MCAccount a
LEFT JOIN MCUser u ON a.AEID = u.UserID
LEFT JOIN BCAccountInstrument bi ON a.AccountID = bi.AccountID
WHERE a.State = 'A'
GROUP BY a.AEID, u.Name
HAVING SUM(bi.TotalBoughtFee) + SUM(bi.TotalSoldFee) > 0
ORDER BY TotalCommission DESC;

SQL执行结果

AEID AEName AccountCount TotalBuyCommission TotalSellCommission TotalCommission
C01 CHAN YUET HUNG 628 183,244.64 187,220.59 370,465.23
C28 CHAN SHU SHAN 405 179,275.89 176,760.39 356,036.28
C05 CENTRAL 517 97,368.51 102,819.88 200,188.39
C33 LEON NG 13 71,541.06 72,620.60 144,161.66
C07 CHAN WING PAI 75 73,255.68 69,115.58 142,371.26
C10 TOKWAWAN / KOWLOON CITY 369 51,059.78 57,288.86 108,348.64
C08 WONG HON KONG 380 47,505.15 46,300.39 93,805.54
C36 Name Of C36 146 40,945.66 35,682.86 76,628.52
C66 CHEUNG YUK LING IVA 17 24,458.82 22,723.18 47,182.00
C19 WONG LO SING 60 13,337.69 13,912.30 27,249.99

(共15个AE有佣金记录,以上展示前10条)

注: 当前SQL无日期条件,统计所有历史累计佣金。如需"本月"佣金,需添加 LastTransactionDate >= '2026-04-01' 条件。

SQL理由

  • MCAccount.AEID 关联经纪商/客户主任
  • BCAccountInstrument 包含交易费用数据

SQL准确度评分

评分: 8/10
理由: 能按AE统计佣金,但返佣金额需要关联 MCRebateScheme 表获取。


Q36. 各市场待结算金额

问题

What is the pending settlement amount for each market (e.g., HK T+1 & T+2, US T+1)?

各市场(如港股T+1和T+2、美股T+1)的待结算金额是多少?

查询SQL

-- 按市场统计待结算金额
SELECT 
    MarketID,
    SUM(DueBuy + DueSell) AS TotalPendingQty,
    SUM(NextDayDueBuy + NextDayDueSell) AS T2TotalPendingQty
FROM BCAccountInstrument
WHERE DueBuy > 0 OR DueSell > 0 OR NextDayDueBuy > 0 OR NextDayDueSell > 0
GROUP BY MarketID;

SQL执行结果

MarketID TotalPendingQty T2TotalPendingQty
HKEX 0 0
SETW 0 0

SQL理由

  • BCAccountInstrument 记录各市场的待交收数量
  • DueBuy/DueSell 对应T+1交收

SQL准确度评分

评分: 7/10
理由: 能统计待结算数量,但金额计算需要关联价格表。


Q37. 进行中的IPO事件

问题

Are there any IPO events currently in progress, and what is their subscription status?

是否有正在进行的IPO事件,其认购状态如何?

查询SQL

SQL 1: 查询进行中的IPO (2026年4月)

-- 查询进行中的IPO (2026年4月)
SELECT 
    i.InstrumentID,
    i.MarketID,
    i.Name AS InstrumentName,
    i.State AS InstrumentStatus,
    ip.Quantity AS SubscriptionLot,
    ip.SubscriptionAmount,
    ip.CreatedOn AS SubscriptionDate
FROM MCInstrument i
INNER JOIN MCInstrumentIPODetail ip ON i.InstrumentID = ip.InstrumentID
WHERE YEAR(ip.CreatedOn) = 2026
    AND MONTH(ip.CreatedOn) = 4
ORDER BY ip.CreatedOn DESC;

执行结果1:

InstrumentID MarketID InstrumentName SubscriptionLot SubscriptionAmount

说明: 2026年4月无IPO认购记录。如需查看所有IPO,可去掉日期条件 YEAR/MONTH。

SQL 2: 查询所有进行中IPO (State='A')

-- 查询所有进行中的IPO
SELECT 
    COUNT(*) AS IPOCount,
    SUM(SubscriptionAmount) AS TotalSubscriptionAmount
FROM MCInstrumentIPODetail
WHERE State = 'A';

SQL理由

  • MCInstrument 表记录证券信息
  • MCInstrumentIPODetail 记录IPO认购详情

SQL准确度评分

评分: 8/10
理由: 能查询IPO认购信息。


Q38. IPO事件佣金利息汇总

问题

What are the total commission, handling fees, and margin interest for IPO events this month?

本月IPO事件的总佣金、手续费和保证金利息是多少?

查询SQL

-- IPO相关费用汇总 (2026年4月)
SELECT 
    'IPO Commission' AS FeeType,
    SUM(ip.SubscriptionAmount * 0.001) AS EstimatedFee
FROM MCInstrumentIPODetail ip
WHERE YEAR(ip.CreatedOn) = 2026
    AND MONTH(ip.CreatedOn) = 4;

SQL执行结果

当前查询无结果

SQL理由

  • IPO相关费用分散在多个表中
  • 需要关联 BCAccountInstrument 获取IPO交易费用

SQL准确度评分

评分: 6/10
理由: IPO费用数据分散,需要关联多个表进行复杂查询。


Q39. 今日公司行动

问题

List corporate actions (e.g., entitlements) that need to be performed today.

列出今日需要执行的公司行动(如权益分派)。

查询SQL

-- 查询今日生效的公司行动 (固定日期: 2026-04-02)
SELECT 
    e.EntitlementID,
    e.MarketID,
    e.InstrumentID,
    i.Name AS InstrumentName,
    e.BalanceType,
    e.BalanceDate,
    e.BalanceExDate,
    e.Remark,
    e.State
FROM MSBEntitlement e
INNER JOIN MCInstrument i ON e.InstrumentID = i.InstrumentID
WHERE e.State = 'A'
    AND (
        e.BalanceDate = '2026-04-02'
        OR e.BalanceExDate = '2026-04-02'
        OR e.AutoHoldDate = '2026-04-02'
        OR e.AutoDeductDate = '2026-04-02'
    );

SQL执行结果

当前查询无结果

SQL理由

  • MSBEntitlement 记录所有权益分派信息
  • BalanceDate 权益登记日期

SQL准确度评分

评分: 8/10
理由: SQL结构正确,当前无结果为测试数据问题。


Q40. 今日股票移动

问题

List all stock movements performed today.

列出今日执行的所有股票转移/移动。

查询SQL

-- 今日股票转入/转出 (固定日期: 2026-04-02)
SELECT 
    AccountID,
    MarketID,
    InstrumentID,
    TodayIn AS QuantityIn,
    TodayOut AS QuantityOut,
    HoldForDeposit AS PendingDeposit,
    HoldForWithdrawal AS PendingWithdrawal
FROM BCAccountInstrument
WHERE TodayIn > 0 OR TodayOut > 0;

SQL执行结果

当前查询无结果

SQL理由

  • BCAccountInstrument 记录股票持仓变动
  • TodayIn 今日转入数量

SQL准确度评分

评分: 8/10
理由: 能查询股票移动记录,当前无结果为测试数据问题。


Q41. 今日现金移动

问题

List all cash movements performed today.

列出今日执行的所有现金划转。

查询SQL

-- 今日现金变动汇总 (固定日期: 2026-04-02)
SELECT 
    b.AccountID,
    a.Name AS AccountName,
    b.TodayIn AS CashIn,
    b.TodayOut AS CashOut,
    b.BankAvailableBalance
FROM BCAccountCash b
INNER JOIN MCAccount a ON b.AccountID = a.AccountID
WHERE b.TodayIn > 0 OR b.TodayOut > 0;

SQL执行结果

当前查询无结果

SQL理由

  • BCAccountCash 记录账户现金变动
  • TodayIn 今日现金流入

SQL准确度评分

评分: 8/10
理由: 能查询现金移动记录,当前无结果为测试数据问题。


Q42. 后台系统活跃用户

问题

List active users in the back office.

列出后台系统中的活跃用户。

查询SQL

-- 查询后台系统活跃用户
SELECT 
    u.UserID,
    u.Name AS UserName,
    u.Status,
    u.LogonEnableFlag,
    u.LastLogonTime,
    u.BranchID,
    u.DepartmentID,
    CASE u.CompanyAEFlag WHEN 'Y' THEN '公司经纪' ELSE '个人' END AS AEType
FROM MCUser u
WHERE u.State = 'A'
    AND u.LogonEnableFlag = 'Y'
ORDER BY u.LastLogonTime DESC;

SQL执行结果

UserID UserName Status LogonEnableFlag LastLogonTime AEType
SUPPORT SUPPORT N Y 2026-04-03 18:53:04 个人
ROSANNA ROSANNA N Y 2025-10-21 16:47:11 个人

SQL理由

  • MCUser 存储系统用户信息
  • State = 'A' 用户状态正常

SQL准确度评分

评分: 9/10
理由: SQL准确返回活跃用户列表。


Q43. 透支持仓账户

问题

List accounts with overdrawn positions.

列出持仓为负数(透支)的账户。

查询SQL

-- 查询透支持仓账户
SELECT 
    AccountID,
    Name AS AccountName,
    MarketValue,
    AssetBalance,
    LiabilityBalance,
    MarginPosition,
    MarginFacilityFlag
FROM MCAccount
WHERE MarketValue < 0
    AND State = 'A'
ORDER BY MarketValue ASC;

SQL执行结果

AccountID AccountName MarketValue MarginFacilityFlag
P030012 LAI YEE TAK HELEN -112,196.60 N
P350022 CHAN YAU KING*** -92,950.00 N
P011212 NG SIU PING -12,352.00 N

SQL理由

  • MarketValue < 0 筛选持仓为负的账户
  • 持仓为负通常表示账户存在透支或结算问题

SQL准确度评分

评分: 9/10
理由: 能准确识别透支持仓账户。


Q44. 本月利息收支

问题

What is the interest amount received/paid this month (e.g., client debit interest and credit interest)?

本月收到/支付的利息金额是多少(如客户借款利息和存款利息)?

查询SQL

-- 本月利息收支汇总 (2026年4月)
SELECT 
    SUM(AccruedCreditInterest) AS CreditInterest,
    SUM(AccruedDebitInterest) AS DebitInterest,
    SUM(AccruedCreditInterest) - SUM(AccruedDebitInterest) AS NetInterest
FROM BCAccountCash;

SQL执行结果

CreditInterest DebitInterest NetInterest
464.15 2,022.70 -1,558.55

SQL理由

  • BCAccountCash 记录账户现金和利息信息
  • AccruedCreditInterest 应计存款利息

SQL准确度评分

评分: 7/10
理由: 基本逻辑正确,但需要添加日期筛选条件。


Q45. 其他经纪商持仓

问题

What is the total client holding at different broker firms (e.g., non-CCASS locations)?

不同经纪商(如非中央结算系统持仓)的客户总持仓是多少?

查询SQL

-- 按托管位置统计持仓(非CCASS)
SELECT 
    loc.LocationID,
    loc.Name AS LocationName,
    COUNT(DISTINCT bi.AccountID) AS AccountCount,
    SUM(bi.Settled) AS TotalQuantity,
    SUM(bi.CostAmount) AS TotalCostAmount
FROM BCAccountLocationInstrument bi
INNER JOIN MCLocation loc ON bi.LocationID = loc.LocationID
WHERE loc.CCASSFlag = 'N'
GROUP BY loc.LocationID, loc.Name
ORDER BY TotalQuantity DESC;

SQL执行结果

当前查询需要验证 Location 表关联

SQL理由

  • BCAccountLocationInstrument 记录按托管位置分类的持仓
  • MCLocation 存储托管位置信息

SQL准确度评分

评分: 7/10
理由: 需要确认 BCAccountLocationInstrument 表的实际结构。


Q46. 支付给其他经纪商佣金

问题

How much commission has been paid to other brokers?

支付给其他经纪商的佣金是多少?

查询SQL

-- 查询支付给其他经纪商的佣金
SELECT 
    b.BrokerID,
    b.Name AS BrokerName,
    SUM(bc.Commission) AS TotalCommission,
    SUM(bc.Consideration) AS TotalConsideration
FROM MCBroker b
INNER JOIN BCBrokerCash bc ON b.BrokerID = bc.BrokerID
WHERE bc.Commission > 0
GROUP BY b.BrokerID, b.Name
ORDER BY TotalCommission DESC;

SQL执行结果

当前查询需要验证经纪商佣金表关联

SQL理由

  • MCBroker 存储经纪商信息
  • BCBrokerCash 可能包含经纪商现金和佣金数据

SQL准确度评分

评分: 6/10
理由: 经纪商佣金数据可能存储在其他费用相关表中。


Q47. 报表发放统计

问题

How many daily or monthly statements were issued today / on a specific date?

今日/指定日期发放了多少份日结单或月结单?

查询SQL

SQL 1: 查询报表发放统计 (固定日期: 2026-04-02)

-- 查询报表发放统计 (2026-04-02)
SELECT 
    'Daily Statement' AS StatementType,
    COUNT(*) AS StatementCount
FROM MCAccount
WHERE LastDailyStatementDate = '2026-04-02'
UNION ALL
SELECT 
    'Monthly Statement' AS StatementType,
    COUNT(*) AS StatementCount
FROM MCAccount
WHERE LastMonthlyStatementDate = '2026-04-02';

执行结果1:

StatementType StatementCount
Daily Statement 0
Monthly Statement 1275

SQL 2: 查询报表发放详情

-- 查询具体发放报表的账户
SELECT 
    AccountID,
    Name AS AccountName,
    LastDailyStatementDate,
    LastMonthlyStatementDate
FROM MCAccount
WHERE LastDailyStatementDate = '2026-04-02'
   OR LastMonthlyStatementDate = '2026-04-02';

SQL理由

  • MCAccount 记录账户报表发送日期
  • LastDailyStatementDate 最近日结单发送日期

SQL准确度评分

评分: 9/10
理由: 能准确统计报表发放情况,2026-04-02有 0 份日结单和 1275 份月结单(当日为月结单发放日)。


Q48. 支持保证金证券

问题

List all instruments that support margin and their corresponding margin ratios.

列出所有支持保证金的证券及其相应的保证金比例。

查询SQL

-- 查询支持保证金的证券
SELECT 
    InstrumentID,
    Name AS InstrumentName,
    MarginPercentage AS MarginRatio,
    CASE 
        WHEN MarginPercentage >= 0.7 THEN '高'
        WHEN MarginPercentage >= 0.5 THEN '中'
        WHEN MarginPercentage > 0 THEN '低'
        ELSE 'N/A'
    END AS RiskLevel,
    MarginLimitPerInstrument,
    CollateralRatio
FROM MCInstrument
WHERE MarginPercentage IS NOT NULL
    AND MarginPercentage > 0
    AND State = 'A'
ORDER BY MarginPercentage DESC;

SQL执行结果

InstrumentID InstrumentName MarginRatio RiskLevel
00001 CKH HOLDINGS(S) 0.70 高
00002 CLP HOLDINGS(S) 0.70 高
00003 HK & CHINA GAS(S) 0.70 高

(共767条记录)

SQL理由

  • MCInstrument 存储证券信息
  • MarginPercentage 保证金比例

SQL准确度评分

评分: 9/10
理由: 准确返回支持保证金的证券列表。


Q49. 本月开户统计

问题

How many accounts were opened this month, this quarter, and this year?

本月、本季度和今年分别开了多少账户?

查询SQL

-- 开户统计 (2026年4月)
SELECT 
    COUNT(CASE WHEN MONTH(OpenDate) = 4 AND YEAR(OpenDate) = 2026 THEN 1 END) AS April2026,
    COUNT(CASE WHEN DATEPART(QUARTER, OpenDate) = 2 AND YEAR(OpenDate) = 2026 THEN 1 END) AS Q2_2026,
    COUNT(CASE WHEN YEAR(OpenDate) = 2026 THEN 1 END) AS Year2026,
    COUNT(*) AS TotalAccounts,
    MIN(OpenDate) AS EarliestOpenDate,
    MAX(OpenDate) AS LatestOpenDate
FROM MCAccount
WHERE OpenDate IS NOT NULL;

SQL执行结果

April2026 Q2_2026 Year2026 TotalAccounts EarliestOpenDate LatestOpenDate
0 0 0 1,951 1993-03-05 2025-10-16

SQL理由

  • MCAccount.OpenDate 账户开户日期
  • 按月、季度、年分别统计新开户数量

SQL准确度评分

评分: 9/10
理由: 能准确统计开户数量。当前无2026年新开户为测试数据问题,最新开户日期为2025-10-16。

Q50. 今天所有客戶的交易記錄(与Jagon会议的查询SQL)

问题

列出今天所有客戶的交易記錄

查询SQL

SELECT TOP
	15 c.ContractID,
	c.TradeDate,
	LTRIM( RTRIM( c.AccountID ) ) AS AccountID,
	LTRIM( RTRIM( c.MarketID ) ) AS MarketID,
	c.InstrumentID,
	c.BuySell,
	c.Quantity,
	c.Consideration,
	LTRIM( RTRIM( c.CurrencyID ) ) AS CurrencyID 
FROM
	dbo.TSBAccountContract c
	INNER JOIN dbo.MCAccount a ON c.AccountID = a.AccountID 
WHERE
	CAST ( c.TradeDate AS DATE ) = '2026-04-02' 
	AND LTRIM( RTRIM( a.HouseAccountFlag ) ) = 'N' 
ORDER BY
	c.ContractID;

SQL执行结果

ContractID TradeDate AccountID MarketID InstrumentID BuySell Quantity Consideration CurrencyID
B02403846 2026-04-02 P011206 HKEX 01810 B 600 18360 HKD
B02403847 2026-04-02 P011202 HKEX 01810 B 200 6120 HKD

附录:关键表说明

表名 说明 关键字段
MCAccount 账户主表 AccountID, Name, MarketValue, MarginFacilityFlag
MCUser 用户表 UserID, Name, Status, LogonEnableFlag
BCAccountInstrument 账户持仓 AccountID, MarketID, Settled, DueBuy, DueSell
BCAccountCash 账户现金 AccountID, TodayIn, TodayOut, AccruedInterest
HCAccountMarginCallForDeposit 追缴保证金 AccountID, CallForDeposit, CallForDepositDate
MCInstrument 证券表 InstrumentID, Name, MarginPercentage
MCInstrumentIPODetail IPO详情 InstrumentID, Quantity, SubscriptionAmount
MSBEntitlement 权益分派 EntitlementID, BalanceDate, BalanceExDate
MCBroker 经纪商 BrokerID, Name
MCLocation 托管位置 LocationID, Name, CCASSFlag
HCExchangeRate 汇率 ExchangeRateID, ValueDate
HCAccountCashRecord 现金记录 AccountID, ValueDate, LedgerBalance

文档结束