AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 229155
Accepted
Steve_Malcolm
Steve_Malcolm
Asked: 2019-02-08 09:38:21 +0800 CST2019-02-08 09:38:21 +0800 CST 2019-02-08 09:38:21 +0800 CST

LEFT OUTER JOIN 找不到匹配的行

  • 772

这个让我快打败了。以下是存储过程中的代码,如果重复运行,将继续 1) 无法识别匹配行和 2) 插入新的相同行。源表和目标表中 SERV_LINE_ID 和 TYPE_OF_SERVICE 的值和数据类型是相同的。同样,这种行为是可重复的;即使在删除有问题的行之后。其他删除的行被替换,但在第一次运行后被识别。

INSERT INTO etl.TargetTable
            (CUSTOMER_NUMBER,
             PCN,
             VISN,
             VA_FACILITY,
             AUTHORIZATION_NUMBER,
             VAMC,
             CLINXX,
             BEGIN_DOS,
             BILLED_AMOUNT,
             DATE_SUBMITTED,
             VA_FORM_TYPE,
             VETERAN_LAST_NAME,
             VETERAN_FIRST_NAME,
             VETERAN_SS,
             TYPE_OF_SERVICE,
             ENDING_DOS,
             CATEGORY_CARE,
             AUTH_TYPE,
             SERVICE_LINE_ID,
             SERVICE_LINE_CHARGE_AMOUNT,
             LAST_EXPORT,
             SYSISEXPORTED,
             SYSISDELETED,
             SYSCHECKSUM,
             SERV_LINE_ID)
SELECT s.CUSTOMER_NUMBER,
       s.PCN,
       s.VISN,
       s.VA_FACILITY,
       s.AUTHORIZATION_NUMBER,
       s.VAMC,
       s.CLINXX,
       s.BEGIN_DOS,
       s.BILLED_AMOUNT,
       s.DATE_SUBMITTED,
       s.VA_FORM_TYPE,
       s.VETERAN_LAST_NAME,
       s.VETERAN_FIRST_NAME,
       s.VETERAN_SS,
       s.TYPE_OF_SERVICE,
       s.ENDING_DOS,
       s.CATEGORY_CARE,
       s.AUTH_TYPE,
       s.SERVICE_LINE_ID,
       s.SERVICE_LINE_CHARGE_AMOUNT,
       NULL,
       0,
       0,
       s.SYSCHECKSUM,
       s.SERV_LINE_ID
FROM   ##Source s
       LEFT OUTER JOIN etl.TargetTable t
                    ON s.SERV_LINE_ID = t.SERV_LINE_ID
                       AND s.TYPE_OF_SERVICE = t.TYPE_OF_SERVICE
                       AND s.DATE_SUBMITTED <= '2018-10-10'
WHERE  t.SERV_LINE_ID IS NULL 
sql-server sql-server-2016
  • 1 1 个回答
  • 538 Views

1 个回答

  • Voted
  1. Best Answer
    Steve_Malcolm
    2019-02-08T12:06:09+08:002019-02-08T12:06:09+08:00

    咆哮:在过去两天花了 7 个小时之后,被告知这个问题表明缺乏研究有点痛苦。/咆哮

    我让你们所有人(谢谢)和我的团队成员参与进来;最后偶然发现了解决方案。我更改了查询中的逻辑,将过滤器从 JOIN 谓词移至 WHERE 子句。 在此处输入图像描述 至

    在此处输入图像描述

    我希望有人能帮助我理解为什么这有帮助。我认为在 JOIN 中使用过滤器与在 WHERE 子句中使用过滤器是一样的。

    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve