MYSQL select join 多个表并求和

2023-12-05

我有三张桌子

1.master

id_master barcode name last_stock 
1         123     abc  15 
2         234     bcd  10 
3         345     cde  7 
4         456     def  11 
5         567     efg  20

2. 反式输入

id_trans_in barcode qty time_trans 
1           567     1   2016-04-01 10:15:09
2           234     2   2016-04-01 14:15:09
3           345     5   2016-04-01 20:15:09

3. 转出

id_trans_out barcode qty time_trans 
1           123     3   2016-04-01 09:15:09
2           234     5   2016-04-01 08:15:09

我必须建立一个查询才能给出结果

id_master barcode name last_stock in out
1         123     abc  15         0   3
2         234     bcd  10         2   5
3         345     cde  7          5   0
4         456     def  11         0   0
5         567     efg  20         1   0

我只是尝试简单的查询

select
    a.id_master, a.barcode, a.name,
    COALESCE(SUM(b.qty),'0')
from
    master a
inner join trans_in b
on a.barcode = b.barcode
where
    date(b.time_trans) = '2016-04-01'   
group by a.barcode

结果是

id_master barcode name COALESCE(SUM(b.qty),'0')
5         567     efg  1
2         234     bcd  2
3         345     cde  5

我不知道如何通过 time_trans 组合 master、trans_in 和 trans_out 的完整列表(如果为 null,则为 0),我已经尝试在其中三个上使用左连接、内连接,但结果让我头晕.. SUM 的结果超过数量从现场来看,我真的不知道为什么。


您可以将连接保留到某些派生表,以防万一您每个日期获得多个条目

    SELECT  a.id_master ,
        a.barcode ,
        a.name ,
        a.last_stock ,
        COALESCE(b.`IN`, 0) AS `IN`,
        COALESCE(c.`OUT`, 0) AS `OUT`
FROM    master a
        LEFT JOIN (SELECT barcode, SUM(qty) as `IN` 
                     FROM trans_in 
                     WHERE date(time_trans) = '2016-04-01' 
                     GROUP BY barcode ) b ON a.barcode = b.barcode
        LEFT JOIN (SELECT barcode, SUM(qty) as `OUT`
                     FROM trans_out 
                     WHERE date(time_trans) = '2016-04-01' 
                     GROUP BY barcode ) c  ON a.barcode = c.barcode;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MYSQL select join 多个表并求和 的相关文章

  • C#:SQL 查询生成器类

    在哪里可以找到好的 SQL 查询构建器类 我只需要一个简单的类来构建 SQL 字符串 仅此而已 我需要它用于 C 和 MySql 我真的不需要像 Linq 或 NHibernate 这样的东西 谢谢 由于 Google 将我引导至此页面 我
  • 使用按位函数查询 BIT 字段时,MySQL 不使用索引

    我的 MySQL 表中有一个 BIT 类型的字段 我想使用位值存储记录的状态 例如 1 status1 2 status2 4 status3 8 status4 每条记录可以同时具有多种状态 对于 status1 和 status3 该值
  • PHP 选择后立即删除

    我有一个 PHP 服务器脚本 它从 MySQL 数据库中选择一些数据 一旦我将 mysql query 和 mysql fetch assoc 的结果存储在我自己的局部变量中 我就想删除我刚刚选择的行 这种方法的问题在于 PHP 似乎对我的
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • PHP 绑定“bigint”数据类型(MySQLi 准备好的语句)

    studentId 57004542323382 companyOfferId 7 sql INSERT INTO studentPlacement companyOfferId studentId VALUES if stmt db gt
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • MySQL Connector/C++ 库链接错误问题

    PROBLEM 好吧 我一直在尝试遵循 MySQL Forge Wiki 和其他一些网站上的示例代码 这些网站提供了有关如何获得简单数据库连接的教程 但由于某种原因 我的项目总是因链接错误而失败 我可以我自己不明白为什么或如何解决它 我仍在
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s

随机推荐

  • 多次调用 imageWithData:UIImageJPEGRepresentation() 仅第一次压缩图像

    为了防止我的应用程序出现滞后 我尝试压缩大于 1 MB 的图像 主要是从 iPhone 的普通相机拍摄的照片 UIImage image info objectForKey UIImagePickerControllerOriginalIm
  • 使用 swift 获取 HTTP 状态

    很抱歉 我还没有找到我的问题的答案 请不要太严厉 我不是专业程序员 但我不断学习 希望一旦我能够回答别人的问题 我正在尝试获取链接的 HTTP 状态 我根据一个数据库条目代码生成链接 例如 ABCDEF 我将它们保存在一个数组中 然后生成指
  • 什么布局管理器会执行此操作?

    OY 没有足够的代表点来发布图像 joes pizza pizza type toppings cheese mushrooms 15 00 veggie extra cheese p
  • Rollup、Vue 和 Buble、scss 文件中出现意外标记

    我正在尝试使用 Vue 和 Buble 按照 Vue 官方页面中提供的示例 使用 rollup 来编译 SFC 但我不断收到此错误 src wrapper js dist chat min js plugin buble SyntaxErr
  • 在 WPF 中缓慢平移和缩放

    我在 WPF 的几块画布上绘制了大量的线条和文本 我在 WPF 中使用了最轻量级的元素 DrawingVisual 我在不同的画布上画了线 并绑定了它们thickness为缩放系数的倒数 这样我可以在缩放时获得均匀的线条粗细 这意味着当我缩
  • 正则表达式中的否定字符[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我如何编写符合以下条件的正则表达式 没有数字 没有特殊字符 没有空间 在一个字符串中 字符类 中的插入符号是大多数正则表达式实现 Perl NET Ruby Javascript 等
  • VB6 应用时序

    我正在尝试分析 VB6 应用程序 基本上我想在方法级别计算出执行花费了多少时间 然而VB6只支持1秒的时间 有什么好的方法可以计算出毫秒等吗 虽然MSDNsays Timer仅精确到1秒 我发现它比实践中的要好 获取刻度数通常准确到abou
  • 将 C“FOR”循环转换为 Delphi

    我正在尝试将 FOR 循环从 C 转换为 Delphi 但我有一些疑问 我知道 C 中的这段代码 for i 0 i lt mb gt size i 在Delphi中是这样的 for i 0 to mb size do begin end
  • 在 AngularJS ng-repeat 中对集合进行分组?

    我有一个非常简单的场景 其中有一组记录可用 我需要以简单的 ng repeat 方式显示它们 但是 我需要按属性对记录进行分组 并且我的目标不是不必更改集合即可完成此分组 我的想法是可以应用某种类型的过滤器 但在实践中过滤器 很好地过滤数据
  • 如何创建一个函数来计算每个元素等于其右侧 2 个元素的次数

    我知道我需要使用列表理解 但我一生都无法弄清楚表示这一点的正确方法是什么 此运行权的一个示例是 晚上 一次输出为 2 代表 e 一次代表 n 列表推导式将具有相同字母的字母放在右侧两个位置 我们只需计算结果列表的长度 s evening a
  • 在 shell 脚本中使用 passwd 命令

    我正在编写一个 shell 脚本来自动添加新用户并更新其密码 我不知道如何让 passwd 从 shell 脚本中读取 而不是以交互方式提示我输入新密码 我的代码如下 adduser 1 passwd 1 2 2 from man 1 pa
  • 在 UIActivityViewController 中与不同类型共享数据

    以下帖子提出了一个极其相似的问题 UIActivityViewController 中共享提供程序的不同数据 但我的问题不同 我知道如何通过使用与不同的活动共享相同类型的不同数据itemForActivityType 例如 id activ
  • List 上的 UISelectMany 导致 java.lang.ClassCastException:java.lang.String 无法转换为 T

    我在用
  • 使用 C#/Linq 累加序列的子序列

    我试图根据以下要求找到一种更好的方法来处理数字序列 的价值sequence i 是其自身价值加上累积的总和sequence 0 to sequence i 1 例如 如果序列是一个列表 List
  • ServiceStack:测试 OrmLite,与 NuGet 一起安装,但出现错误“FileNotFoundException”

    我刚刚在 Visual Studio 2012 中通过 NuGet 安装了 OrmLite 适用于 MySql 安装顺利通过 没有任何错误 并且所有 DLL s 似乎都已添加作为参考 服务栈 Common 3 9 70 0 ServiceS
  • 在 iPhone 上使用 Objective-C 的 HTTP POST 和 GET 教程 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我下载了苹果使用 HTTP POST 和 GET 的演示 他们的示例应用程序有一个包含不同部分的选项卡栏 代码非常混乱 有人能给我一些示例代码或一些相关教程的链接吗 Thanks M
  • 在Python中使用Requests搜索网站时出现502错误

    使用一个非常基本的程序在网站上搜索查询并打印搜索结果 为什么会收到 502 错误 import requests from bs4 import BeautifulSoup import re def main url https www
  • fread 的下载速度比 readfile 慢很多

    我通过 PHP 脚本从 URL 向用户提供下载服务 使用时readfile 我得到了我的连接可以支持的最大下载速度 大约 2 5MB s 但是当我使用fopen fread fclose路线下载速度非常非常慢 大约1 2KB s 这是我的代
  • IntelliJ 找不到任何 LibGDX 包?

    我刚刚切换到 Ubuntu 并且安装了 IntelliJ IDEA 14 社区版 当我导入现有项目时 我发现 IntelliJ 似乎找不到任何 LibGDX 依赖项 我事先安装了 Gradle 我尝试使用 IntelliJ 项目中包含的 G
  • MYSQL select join 多个表并求和

    我有三张桌子 1 master id master barcode name last stock 1 123 abc 15 2 234 bcd 10 3 345 cde 7 4 456 def 11 5 567 efg 20 2 反式输入