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

如何对比Elg与VTrader数据库,找出Elg中未在VTrader存在的文件?

找出Elg数据库中未同步到VTrader的文件

完整查询语句(以昨日数据为例)

SELECT 
    elg_files.FileName,
    elg_files.FileCatalogedOn
FROM (
    -- 合并Elg三张表的昨日文件记录
    SELECT FileName, FileCatalogedOn
    FROM Elg.dbo.ElgFileQueue
    WHERE CAST(FileCatalogedOn AS DATE) = CAST(GETDATE()-1 AS DATE)
    UNION ALL
    SELECT FileName, FileCatalogedOn
    FROM Elg.dbo.RXFileQueue
    WHERE CAST(FileCatalogedOn AS DATE) = CAST(GETDATE()-1 AS DATE)
    UNION ALL
    SELECT FileName, FileCatalogedOn
    FROM Elg.dbo.CostFileQueue
    WHERE CAST(FileCatalogedOn AS DATE) = CAST(GETDATE()-1 AS DATE)
) AS elg_files
LEFT JOIN VTrader.dbo.VTraderer vt
    ON elg_files.FileName = vt.OrigName
    -- 可选:仅对比同日期的文件,取消注释下方语句
    -- AND CAST(elg_files.FileCatalogedOn AS DATE) = CAST(vt.StartDt AS DATE)
WHERE vt.OrigName IS NULL
ORDER BY elg_files.FileCatalogedOn DESC;

步骤拆解

  1. 合并Elg三张表数据
    利用UNION ALL将三张结构一致的表(ElgFileQueue、RXFileQueue、CostFileQueue)的FileName和FileCatalogedOn字段合并成一个数据集。如果需要去重(同一文件可能出现在多张表),可以将UNION ALL替换为UNION(但UNION ALL执行效率更高)。

  2. 关联VTrader筛选缺失文件
    通过LEFT JOIN将合并后的Elg数据与VTrader的表关联,关联条件为FileName = OrigName。当VTrader中没有匹配的记录时,vt.OrigName会返回NULL,通过WHERE vt.OrigName IS NULL即可筛选出未同步到VTrader的文件。

注意事项

  • 跨数据库表引用需使用完整格式:[数据库名].[架构名].[表名],若你的表架构不是dbo,请替换为实际架构名称。
  • 检查VTrader表名:你提供的示例中表名为VTraderer,请确认是否为笔误(比如应为VTrader)。
  • 若需查询所有历史未同步文件,只需删除所有WHERE子句中的日期过滤条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:05:18