查询两个不同表中两个字段的 SUM

2023-11-26

我正在尝试确定如何在两个表之间求和字段。

在表 1 中,我们简称为 gegevens,例如,我会使用 gegevenID、vertrekdatum、prijs

在表 2 中,我们将其称为费用,例如,feeID、gegevenID、金额

我想根据 gegevens 的年份(vertrekdatum)获取 prijs 的值并对其进行求和。

我曾尝试进行 LEFT JOIN,它一直有效,直到费用表中出现同一个 gegevenID 的两条记录,然后它使 prijs 翻倍。

表示例:

GEGEVENS
----------------------------------
gegevenID | vertrekdatum | prijs |
----------------------------------
|      1  | 2011-01-01   |1385.88|
|      2  | 2011-03-01   | 450.26|
|      3  | 2012-01-01   |2505.10|
----------------------------------

FEES
----------------------------
feeID | gegevenID | amount |
----------------------------
|   1 |         2 |   50.00|
|   2 |         2 |  126.00|
|   3 |         3 |   50.00|
----------------------------

结果我want are

TOTALS
--------------------------------------------
| year | SumOfPrijs | SumOfFees |  Total   |
--------------------------------------------
| 2011 |  1836.14   |   176.00  |  2012.14 |
| 2012 |  2505.10   |    50.00  |  2555.10 |
--------------------------------------------

当考虑到一个 gegevenID 的费用表中有两行时,此查询导致“prijs”加倍。

SELECT sum(prijs) as SumOfPrijs, sum(amount) as SumOfFees, sum(prijs)+sum(amount) AS   
Total, year(vertrekdatum) as year
FROM tbl_vluchtgegevens vg
LEFT JOIN tbl_fees f
ON f.gegevenID = vg.gegevenID

WHERE vertrekdatum <=NOW()
GROUP by year(vertrekdatum)

任何想法都会很棒。


您需要在连接之前使用子查询来聚合费用表:

SELECT sum(prijs) as SumOfPrijs, sum(amount) as SumOfFees, sum(prijs)+sum(amount) AS   
Total, year(vertrekdatum) as year
FROM tbl_vluchtgegevens vg LEFT JOIN
     (select f.gegevenId, sum(amount) as Amount
      from tbl_fees f
      group by f.gegevenId
     ) f
     ON f.gegevenID = vg.gegevenID
WHERE vertrekdatum <=NOW()
GROUP by year(vertrekdatum);

问题在于“gegeven”上的多项费用导致连接产生意外的行,从而影响总和。

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

查询两个不同表中两个字段的 SUM 的相关文章

  • PHP 中的异步数据库/服务调用:Gearman 与 pthreads

    在我们的 LAMP 站点上 我们遇到一些服务必须多次调用数据库才能提取数据的问题 通常在 PHP 中完成此操作的方式 至少我的经验 是串行的 这显然是低效的 我们可以通过使用缓存和聚合一些查询来缓解一些低效率的问题 但在某些情况下我们仍然需
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • MySQL“选择更新”行为

    根据 MySql 文档 MySql 支持多粒度锁定 MGL case 1 开放航站楼 1 连接到mysql mysql gt start transaction Query OK 0 rows affected 0 00 sec mysql
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • PDO::commit() 成功或失败

    The PHP PDO 提交 http www php net manual en pdo commit php文档指出该方法成功时返回 TRUE 失败时返回 FALSE 这是指beginTransaction 和commit 之间的语句执
  • 更新重复密钥上的复合密钥 [重复]

    这个问题在这里已经有答案了 我需要更新新行 如果两者都满足 date dat and empId who 作为复合键 但如果其中之一或两者不同 则插入 sql INSERT INTO history SET endtimestamp now
  • Sql:计算随时间的增长

    我几周前发布了这个问题 但我认为我没有清楚地提出这个问题 因为我得到的答案不是我想要的 我认为最好重新开始 我正在尝试查询数据库以检索一段时间内唯一条目的数量 数据看起来像这样 Day UserID 1 A 1 B 2 B 3 A 4 B
  • 本地数据库缓存的最佳实践?

    我正在开发一个应用程序 该应用程序的部分内容依赖于 MySQL 数据库 在某些情况下 应用程序将在互联网连接 UMTS 有限的环境中运行 特别是延迟较高的环境 应用程序的用户能够登录 并且应用程序用户界面的大部分内容都是从 MySQL 数据
  • SQL Server 相当于 MySQL 的 USING

    在 MySQL 中 当您连接不同表中具有相同名称的列时 可以在连接中使用关键字 USING 例如 这些查询产生相同的结果 SELECT FROM user INNER JOIN perm USING uid SELECT FROM user
  • 我可以在一个查询中更新/选择表吗?

    我需要在查看页面时选择数据并更新 视图 列 有没有一种方法可以在一个查询中执行此操作 或者我是否必须使用不同的查询 如果您不想 不需要使用事务 则可以创建一个存储过程 该过程首先更新视图计数 然后选择值并将其返回给用户
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • 让 Prometheus 发送 SQL 查询

    我正在尝试使用普罗米修斯 https prometheus io 监视我的 MySQL 数据库 但似乎找不到添加 SQL 查询的区域 例如 我想运行一个返回值的 SQL 查询 然后将该值添加到图表中 发送警报 有没有办法让 Promethe
  • “警告:mysql_query():提供的参数不是有效的 MySQL-Link” - 为什么?

    我的代码有什么问题吗 我不断收到此错误 Warning mysql query supplied argument is not a valid MySQL Link resource in functions php on line 4
  • 在JavaFX中如何在表视图中添加带有数据的组合框

    我已经尝试了很多 但无法将数据库中的所有值填充到我的组合框表格单元格中 控制器 java public class controller GetConnection gc new GetConnection PreparedStatemen
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 使用 MySQLdb 在 Python 中执行 .sql 文件

    我有一个 sql 文件 其中包含一堆 SQL 查询 每个查询跨越多行 我想通过 Python 在 MySQL 中执行这些查询MySQLdb sqlite3为此目的有一个 非标准快捷方式 称为executescript http docs p
  • 如何编写 bash 函数来包装另一个命令?

    我正在尝试编写一个函数包装器mysql command If my cnf存在于 pwd 中 我想自动附加 defaults file my cnf到命令 这就是我正在尝试的 function mysql if e my cnf then
  • MySQL 和 MariaDB 数据库有什么区别?

    我已经使用 XAMPP 很长时间了 很惊讶 XAMPP 已经从 MySQL 切换到了 MariaDB https www apachefriends org index html https www apachefriends org in

随机推荐

  • 没有模拟器列表可部署 Windows Phone 应用程序

    我无法在 Windows Phone 的 VS 2012 Express 中看到任何模拟器 我的系统满足运行模拟器的所有要求 以前我可以在模拟器上调试 卸载并重新安装 VS 2012 后 我无法获取模拟器列表 并且收到错误 存在部署错误 并
  • 是否可以在 GCC/Clang 上强制进行尾调用优化?

    我正在尝试尽可能地用 C 语言编写函数风格的程序 我知道像 GCC Clang 这样的优秀编译器会默默地进行尾调用优化 但这并不能保证 是否有任何选项可以强制编译器进行尾调用优化 当然 当仅在其自身末尾调用时 Clang 13 mustta
  • liquibase 异常未知数据类型“JSON”

    我的应用程序使用jhipster与mysql和liquibase mysql版本是5 7 20 支持json列 我使用对象映射器映射json列和java对象 它可以工作 列类型是json 但是当涉及liquibase时 mvnw packa
  • 查找列表中元素的位置

    我正在寻找使用 jQuery 查找列表中被单击元素的位置 即顺序 I have ul li Element 1 li li Element 2 li li Element 3 li ul 单击 li 我想将它的位置存储在变量中 例如 如果我
  • 如何在 Sequelize 中创建准备好的语句?

    首先是否有可能 我认为应该是这样 因为它们比原始查询更安全并且可以防止 sql 注入 但我在文档中几乎找不到任何内容 sequelize prepare sequelize query 没关系 sequelize query有一个选项叫做r
  • 使用 chrono::high_resolution_clock::now() 的奇怪行为

    我一直在研究各种游戏计时循环方法 例如格伦 费德勒和德威特 由于我自己的 C 知识限制 我发现关键领域很难理解 有了这个 我开始尝试实现我自己的方法 我想到了一个尝试了解这些方法的好方法 编辑1 我使用 CodeBlocks IDE 和 m
  • 基于高度的容器查询不起作用

    我想在现代 Safari Chrome 浏览器中使用新的 CSS 容器查询 Safari 16 3 谷歌浏览器 113 0 但是 基于高度的容器查询并未按预期工作 预期结果 一旦外部容器变成蓝色 500px 屏幕高度或以下 我预计粉色方块
  • PostgreSQL - 如何将 Base64 图像字符串插入 BYTEA 列?

    我有以下 SQL CREATE TABLE Documents Id INT NOT NULL UserId INT NOT NULL Label CHARACTER VARYING 220 NOT NULL Image BYTEA NOT
  • Jquery/Javascript - 用户在 contentEditable 区域中键入时语法突出显示

    我正在我的网站上开发一个内容可编辑区域 用户可以在其中互相输入消息 div class smartText User types here div 问题是 我们将在里面有智能文本 这意味着如果用户输入 usersame在这个 div 内 u
  • 为什么WeakHashMap在GC后对值保持强引用?

    WeakHashMap 中的关键对象变得弱可达 并且map应该在GC之后删除该条目 但对值对象的强引用仍然存在 为什么 使用番石榴弱键映射观察到相同的行为 预期输出 refKey get null refValue get null 但我得
  • 在键盘上显示带有按钮的 UIView,如 Skype、Viber 即时通讯工具(Swift、iOS)

    我想创建附件视图 将其放置在输入附件视图下 通过键盘 就像在 Skype 应用程序或 Viber 中一样 我已经问过这样的问题了here 但是这个问题的建议解决方案并不是那么优雅 因为当我将滚动视图拖动到顶部时 我希望我的附件 UIView
  • DLL 文件到底是什么?它们如何工作?

    DLL 文件到底是如何工作的 它们似乎有很多 但我不知道它们是什么或它们如何工作 那么 他们有什么关系呢 什么是DLL 动态链接库 DLL 类似于 EXE 但它们不能直接执行 它们类似于 Linux Unix 中的 so 文件 也就是说DL
  • Spring文件混合形式上传

    我想将文件上传到我的 spring 3 0 应用程序 使用 roo 创建 我已经拥有以下实体 Entity RooJavaBean RooToString RooEntity public class SelniumFile ManyToO
  • 与“ws://localhost:3000/”的 WebSocket 连接失败:连接在收到握手响应之前关闭

    我选择了朋友制作的一款游戏 希望通过使用 WebRTC 和 websocket 在对等点之间发送按键数据 使其可以跨浏览器玩 但是 我在控制台中收到此错误 与 ws localhost 3000 的 WebSocket 连接失败 连接在收到
  • Scala 在解析隐式类型时如何使用显式类型?

    我有以下代码 它使用 Spray json 将一些 JSON 反序列化为案例类 通过parseJson方法 根据隐式 JsonFormat MyCaseClass 的定义位置 内联或从伴生对象导入 以及定义时是否提供显式类型 代码可能无法编
  • 无堆栈语言如何工作?

    我听说过无堆栈语言 但是我不知道如何实现这样的语言 有人可以解释一下吗 我们拥有的现代操作系统 Windows Linux 采用我所说的 大堆栈模型 运行 有时 这种模型是错误的 并且激发了对 无堆栈 语言的需求 大堆栈模型 假设编译的程序
  • 如何使用 Koush AndroidAsync 关闭/重试/管理 WebSocket?

    我正在使用 Koush 的 AndroidAsync 作为 WebSocket 客户端 我的代码遵循以下示例https github com koush AndroidAsync并有效 示例复制如下 我需要我的应用程序在启动时打开一个 we
  • 从内存加载.so文件[重复]

    这个问题在这里已经有答案了 可能的重复 从内存中打开 我在 Windows 的 DLL 文件中看到过这种情况 从内存缓冲区加载 但在 Linux 中我找不到它 而且 ld 源代码是我见过的最复杂的代码 所以 有从内存加载 so 文件的示例吗
  • 指针参数和数组参数有区别吗?

    void method double v void method double v 5 这两者有什么区别吗 第二个是否更具体 如v长度限制为 5 个元素 当数组被声明为参数类型时 会退化为指针类型 在你的例子中 void method do
  • 查询两个不同表中两个字段的 SUM

    我正在尝试确定如何在两个表之间求和字段 在表 1 中 我们简称为 gegevens 例如 我会使用 gegevenID vertrekdatum prijs 在表 2 中 我们将其称为费用 例如 feeID gegevenID 金额 我想根