使用 InnerJoin Firebird 删除语句

2023-11-29

我创建此 select 语句是为了查找要删除的重复行。我虽然只是将 SELECT TO DELETE 更改为它会删除行,但事实并非如此。

这是选择语句:

select * FROM MYCARD T1
INNER JOIN( SELECT IDCARD, YEAR, MONEY FROM MYCARD GROUP BY IDCARD, YEAR, MONEY HAVING COUNT(IDCARD) > 1 ) T2 ON
T1.IDCARD = T2.IDCARD AND T1.YEAR=T2.YEAR
AND T1.MONEY = T2.MONEY
WHERE T1.IDMONEY = 5 AND IDCARD=80
AND ID not in (select min(ID)
from MYCARD
WHERE IDMONEY=5
AND IDCARD=80
group by IDCARD, YEAR);

我想使用这个删除:

DELETE FROM MYCARD T1
INNER JOIN( SELECT IDCARD, YEAR, MONEY FROM MYCARD GROUP BY IDCARD, YEAR, MONEY HAVING COUNT(IDCARD) > 1 ) T2 ON
T1.IDCARD = T2.IDCARD AND T1.YEAR=T2.YEAR
AND T1.MONEY = T2.MONEY
WHERE T1.IDMONEY = 5 AND IDCARD=80
AND ID not in (select min(ID)
from MYCARD
WHERE IDMONEY=5
AND IDCARD=80
group by IDCARD, YEAR);

但这不起作用。有任何想法吗?

我也尝试过这个:

DELETE FROM MYCARD
WHERE EXISTS (select * FROM MYCARD T1
INNER JOIN( SELECT IDCARD, YEAR, MONEY FROM MYCARD GROUP BY IDCARD, YEAR, MONEY HAVING COUNT(IDCARD) > 1 ) T2 ON
T1.IDCARD = T2.IDCARD AND T1.YEAR=T2.YEAR
AND T1.MONEY = T2.MONEY
WHERE T1.IDMONEY = 5 AND IDCARD=80
AND ID not in (select min(ID)
from MYCARD
WHERE IDMONEY=5
AND IDCARD=80
group by IDCARD, YEAR))

它不起作用,因为连接不是Firebird删除语法.

例如,您需要将删除与存在一起使用

delete from mycard t1
where exists (
   <a correlated subquery to identify the rows to delete>
)

或类似的方式来识别要删除的记录。底线是:所有必要的逻辑都需要在where clause.

鉴于该示例,您需要执行以下操作:

DELETE FROM MYCARD T1
WHERE T1.IDMONEY = 5 AND T1.IDCARD = 80
AND EXISTS (
    SELECT IDCARD, YEAR, MONEY 
    FROM MYCARD T2
    WHERE T2.IDCARD = T1.IDCARD 
    AND T2.YEAR = T1.YEAR
    AND T2.MONEY = T1.MONEY
    GROUP BY T2.IDCARD, T2.YEAR, T2.MONEY 
    HAVING COUNT(T2.IDCARD) > 1
)
AND T1.ID not in (
    select min(ID)
    from MYCARD
    WHERE IDMONEY = 5
    AND IDCARD = 80
    group by IDCARD, YEAR
)

您可能需要添加额外的AND T2.IDMONEY = 5在选择中存在(除非money and idmoney是同一件事)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 InnerJoin Firebird 删除语句 的相关文章

  • 在 where 子句中使用聚合函数和不同的列条件

    select PO Order Qty Avg PO Order Qty as totalAverage FROM FirstStrike Retail custom Whse Pricing QR where item code 111
  • Postgres 中 -Infinity 和 Infinity 的适当值

    在一种情况下 我们必须在 Postgres DB 中存储 无穷大和 无穷大的值 应该考虑什么合适的值 如果没有 请建议最合适的替代方案 你实际上可以使用 infinity and infinity for FLOAT4 and FLOAT8
  • JDBC 时间戳和日期 GMT 问题

    我有一个 JDBC 日期列 如果我使用 getDate 则会得到 date 仅部分2009 年 10 月 2 日但如果我使用 getTimestamp 我会得到完整的 date 2009 年 10 月 2 日 13 56 78 890 这正
  • 如何在事务中使用链接服务器插入远程表?

    我的链接服务器设置正确 我能够执行以下查询 插入 远程服务器 表 SELECT FROM 本地服务器 表 然而当我做同样的事情时交易内 开始传输 插入 远程服务器 表 SELECT FROM 本地服务器 表 提交交易 我收到类似的错误 用于
  • 每行中非空列的计数

    我有一个包含 4 列的表 在第 5 列中我想存储前 4 列中有多少个非空列的计数 例如 其中 X 是任意值 Column1 Column2 Column3 Column4 Count X X NULL X 3 NULL NULL X X 2
  • 我的 SQL 表设置为允许该列为 NULL,但是当我运行它时,它说它不能为 NULL。什么/为什么/如何?

    所以我在这里遇到了很奇怪的困境 我的 SQL 表设置为允许 ZipCode 列为空 如下所示 CREATE TABLE dbo Companies CompanyId BIGINT IDENTITY 1 1 NOT NULL PRIMARY
  • 如何从 MySQL 中的布尔类型返回不同的字符串?

    如果我在 MySql 中将一列设置为布尔值 则查询将返回以下值 0 or 1 是否可以做这样的事情 SELECT bool value AS yes OR no 我的意思是 根据真假返回两个不同的字符串 SELECT CASE WHEN b
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • 使用转义换行符和回车符取消转义字符串

    我正在尝试编写一个 PLPGSQL 函数来混淆 审查 编辑文本 Obfuscate a body of text by replacing lowercase letters and numbers with symbols CREATE
  • 对于返回超过1个值的SQL select,当Id为GUID时它们如何排序?

    我想知道 SQL Server 如何对查询返回的数据进行排序 并且各个表的 Id 列都是 uniqueidentifier 类型 我在创建所有 GUID 时使用 NHibernate GuidComb 并执行以下操作 Sheet sheet
  • 如何检查oracle数据库中分配给模式、角色的对象的权限(DDL、DML、DCL)?

    大多数时候 我们都在与愚蠢的事情作斗争 以获取架构 角色及其对象的权限详细信息 并尝试找到一些简单的方法来获取有关它的所有详细信息以及伪查询代码 以批量生成授予语句以供进一步使用执行 所以我们在这里得到它 关于数据字典视图前缀的一些简单介绍
  • Oracle 按月滚动或运行总计

    目标 每个月末所有报表的滚动 运行总计 Code select TRUNC ACTHX STMT HX STMT DATE MM AS MNTH COUNT ACTHX INVOICE as STMTS from ACTHX group b
  • REGEXP_REPLACE - 仅当包含在 () 中时才从字符串中删除逗号

    我在 oracle 论坛网站找到了一个例子 输入字符串 a b c x y z a xx yy zz x WITH t AS SELECT a b c x y z a xx yy zz x col1 FROM dual SELECT t c
  • 如何将事物的组合映射到关系数据库?

    我有一个表 其记录代表某些对象 为了简单起见 我假设该表只有一列 这是唯一的ObjectId 现在我需要一种方法来存储该表中的对象组合 组合必须是唯一的 但可以是任意长度 例如 如果我有ObjectIds 1 2 3 4 我想存储以下组合
  • Extbase - 从查询中获取创建的sql

    我想从我的typo3 扩展中获取一些数据库表 该扩展基于 extbase 查询总是不返回任何内容 但数据存在 我试过这个 query this gt createQuery query gt statement SELECT FROM my
  • SQLite (Android):使用 ORDER BY 更新查询

    Android SQLite 我想要在 myTable 中的其他行之间插入行在android中使用SQLite 为此 我尝试增加从第 3 行开始的所有行的 id 这样 我就可以在位置 3 处插入新行 myTable 的主键是列 id 表中没
  • 在 PostgreSql 中计算百分比

    例如我有一个这样的表 string adm A 2 A 1 B 2 A 1 C 1 A 2 通过 SQL 查询 我想要这样的结果 string perc adm A 50 B 100 C 0 我想要每个字符串中数字 2 出现的百分比 我可以
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • 根据由另一列分组的不同列的最大值获取值[重复]

    这个问题在这里已经有答案了 我想根据由另一列分组的不同列的最大值来获取列的值 我有这张表 KEY NUM VAL A 1 AB B 1 CD B 2 EF C 2 GH C 3 HI D 1 JK D 3 LM 并想要这样的结果 KEY V

随机推荐

  • 堆叠条形图,每个堆叠独立的填充顺序

    我面临着一种行为ggplot2 排序和堆积条形图我无法理解 我读过一些关于它的问题 here here等等 但不幸的是我找不到适合我的解决方案 也许答案很简单 但我看不到 希望这不是一个骗子 我的主要目标是根据排序列 此处称为orderin
  • java数学计算给定半径1.00的圆的坐标

    在我的一项作业中 我被要求编写一个程序来计算半径为 1 0 的圆上的点的 x y 坐标 以 0 1 为增量显示范围从 1 00 到负 1 00 的所有 x 值的 y 值输出 并使用以下命令整齐地显示输出printf 其中所有 x 值都垂直对
  • 如何直接进入函数而不进入参数的中间函数?

    在 Visual Studio 2013 或任何版本 中 我正在调试 C 项目 我希望能够绕过单步执行由于参数传递到感兴趣的函数而被调用的中间函数 我怎样才能绕过进入这些中间函数 不直接感兴趣 并直接进入我感兴趣的函数 例如 假设我有一个函
  • 如何在freemarker中自定义数字格式?

    我正在使用 freemarker 并尝试以这种格式显示数字 3 343 434 00例如 这很容易通过使用来解决 total string currency 假设 总数 是某个数字 但是 当我有负数时 它会像这样显示 343 34 而不是这
  • 比较 R 中的 svd 和 princomp

    我想要得到singular values of a matrix in R获取主成分 然后也使用 princomp x 来比较结果 我知道 princomp 会给出主要成分 Question 如何从 d u 和 v 中获取主成分 解决方案s
  • 使用Python组合所有视频的特征

    假设我有 20 个视频 它们具有相同的场景 尺寸和来自同一台相机 让我们假设这二十个视频中的一个有一个人走过 所有其他视频大多相同 除了微小的自然变化 例如风吹树叶等 我正在寻找一种将所有 20 个视频合并为 1 个视频的好方法 我所说的合
  • 尝试加载使用存储传递的数据

    我正在尝试获取正在传递的数据并将其加载到各种文本字段中 现在 我有一个 html 文件 其中包含以下内容 然后 我有一个 js 文件 其中包含我的整个布局以及所有文本字段等以及我的整个商店 到目前为止 我的商店尝试加载数据 但我不确定尝试从
  • 如何启动 ajax 推送网站(activemq 或 cometd 或其他)?

    我想启动一个使用 ajax 推送的应用程序 但是应该正确配置 Web 服务器 并且我不知道如何在服务器端组件上启动 我想从道场彗星然后读了一些博客说activeMQ是较旧的 也是 ajax 推送方面的旗舰载体 但也有另一个博客说它很难设置并
  • 使用 Provider 和模型类搜索/过滤 ListView

    我想通过在搜索字段中输入的文本来过滤列表视图 在线和本网站上有很多示例 但所有内容都过于简化 所有内容都在一个有状态的小部件中 和 或看起来有点混乱 可能不是构建事物的最佳方式 我有一个简单的应用程序 它使用 Provider 一个模型类
  • 如何在reactjs中显示多个标签?

    我制作了一张添加新用户卡 上面有一个加号 我制作了额外的卡片 在每张卡片上显示用户名 显示用户名的卡片使用以下方式显示 map 方法 现在 如果我将第 1 部分代码 见下文 插入到 map 功能后会显示多个添加新用户卡 我的最终目标是显示单
  • 当您使用内存覆盖前缀但所有操作数都是寄存器时会发生什么?

    当您使用内存覆盖前缀但所有操作数都是寄存器时会发生什么 那么 假设您编写了代码mov eax ebx or add eax ebx默认值为 32 位 但您使用 67h 覆盖 处理器如何处理这种情况 英特尔软件开发人员手册 第 2 卷 第 2
  • 如何在嵌套上下文中通过 __VA_OPT__ 扩展递归宏

    我读过了本文 这说明了如何 VA OPT 函数宏可用于递归扩展宏 我想实现类似的东西 不同之处在于宏是在嵌套上下文中扩展的 输入 NEST RECURSIVE A B C 应该产生 顺序无关 C B A 我的方法稍微概括了这篇文章 defi
  • 我们可以在 Route 53 AWS DNS 服务中创建多少个子域?

    在我的应用程序中 我为每个帐户提供一个子域 如 user domain com 因此 我计划使用 AWS Route 53 将子域路由到我的应用程序 Amazon Route 53 中的子域是否有最大限制 提前致谢 我给出了一个子域 例如u
  • pandas 数据框中的数据透视表

    我有一个要求 我试图计算值并将它们放入数据透视表中 这是我的数据框 Cola Colb Apple Rippened Orange Rippened Apple UnRippened Mango UnRippened 我希望输出是这样的 R
  • 使用谷歌地图 API 从 iPhone 进行反向地理编码纬度/经度

    我目前正在使用谷歌地图的反向地理编码 API 将从 iPhone 的 CoreLocation API 接收到的经 纬度转换为谷歌应用程序引擎服务器上的城市 州信息 这会被视为违反条款吗 我做了一些研究 但找不到这个问题的直接答案 现在 我
  • 合并重叠区间

    目前 我的间隔时间为 temp tuple 25 14 21 16 20 15 10 7 8 5 6 3 2 4 2 3 3 6 12 15 13 18 14 17 22 27 25 30 26 29 按下限升序排列 我的任务是合并重叠的间
  • 在 Jersey 1.19.1 上禁用 WADL 生成

    我在一个带有 Java Jboss 的 Web 项目中使用 Jersey 1 19 1 每次我从 Web 服务请求某些内容时 它都会在 server log 上显示此条目 ERROR STDERR com sun jersey server
  • Android 上未找到类异常

    我从网上得到了一些酸味 并导入到我的工作区 当我在模拟器上运行时 它会抛出 05 28 17 30 47 895 E AndroidRuntime 840 java lang RuntimeException Unable to insta
  • Yajra Laravel 数据表 - 合并列值

    我已将 Yajra Datatables 包含在我的 Laravel 项目中并且工作正常 问题是我需要合并 3 个列值并将它们显示为 1 并允许同时搜索 我怎么做 我能够使用渲染功能并在单列中显示数据 但那么如何搜索呢 Mysql 表示例
  • 使用 InnerJoin Firebird 删除语句

    我创建此 select 语句是为了查找要删除的重复行 我虽然只是将 SELECT TO DELETE 更改为它会删除行 但事实并非如此 这是选择语句 select FROM MYCARD T1 INNER JOIN SELECT IDCAR