在一个 SQL 查询中合并两个表并使日期值唯一

2023-11-23

我有以下两个表,您也可以在 SQL fiddle 中找到它们here:

CREATE TABLE Inbound (
    Inbound_Date DATE,
    Product TEXT,
    InboundType TEXT,
    Quantity VARCHAR(255)
);

INSERT INTO Inbound
(Inbound_Date, Product, InboundType, Quantity)
VALUES 
("2017-05-23", "Product A", "Supplier", "400"),
("2018-09-10", "Product B", "Supplier", "200"),
("2018-12-14", "Product B", "Supplier", "600"),
("2019-01-03", "Product A", "Return", "700"),
("2019-02-15", "Product C", "Supplier", "650"),
("2017-09-04", "Product C", "Supplier", "380"),
("2019-01-09", "Product A", "Return", "120"),
("2019-02-16", "Product A", "Return", "470"),
("2019-02-12", "Product A", "Supplier", "920"),
("2019-02-15", "Product C", "Return", "860"),
("2018-01-03", "Product B", "Supplier", "610");


CREATE TABLE Outbound (
    Outbound_Date DATE,
    Product TEXT,
    OutboundType TEXT
);

INSERT INTO Outbound
(Outbound_Date, Product, OutboundType)
VALUES 
("2017-05-23", "Product A", "Sale_US"),
("2018-09-10", "Product B", "Sale_DE"),
("2018-12-18", "Product B", "Sale_DE"),
("2019-02-01", "Product A", "Sale_DE"),
("2019-02-22", "Product C", "Sale_FR"),
("2017-10-18", "Product C", "Sale_NL"),
("2019-04-12", "Product A", "Sale_US"),
("2019-04-12", "Product A", "Sale_FR"),
("2019-04-12", "Product A", "Sale_FR"),
("2019-04-19", "Product C", "Sale_US"),
("2018-05-17", "Product B", "Sale_DE");

我使用VBAhere合并两个表:

(SELECT 
   Inbound_Date As Date, 
   Product, 
   SUM(Quantity) as Inbound, 0 as Outbound
 FROM Inbound
 GROUP BY 1,2
) 

UNION ALL

(SELECT
   Outbound_Date,
   Product,
   0 as Inbound, COUNT("Outbound_Type")  as Outbound 
 FROM Outbound
 GROUP BY 1,2
)

ORDER BY 1,2;

这一切都很完美。


但是,现在我希望日期显示唯一。
结果应该是这样的:

Date           Product       Inbound        Outbound
2017-05-13     Product A     400            1
2017-09-04     Product C     380            0
2017-10-18     Product C      0             1
:              :             :              :
:              :             :              :
2018-09-10     Product B     200            1
:              :             :              :
:              :             :              :

我需要对代码进行哪些更改才能使其正常工作?


Use union all and group by:

SELECT Date, Product, SUM(Inbound) as Inbound, SUM(Outbound) as Outbound
FROM ((SELECT Inbound_Date As Date, Product, SUM(Quantity) as Inbound, 0 as Outbound
      FROM Inbound
      GROUP BY 1,2
     ) UNION ALL
     (SELECT Outbound_Date, Product, 0 as Inbound, COUNT(*)  as Outbound 
      FROM Outbound
      GROUP BY 1,2
     )
    ) io
GROUP BY Date, Product;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一个 SQL 查询中合并两个表并使日期值唯一 的相关文章

随机推荐

  • 是否可以将 setup.exe 和 setup.msi 图标更改为不同的图标?

    VS 2008 SP1 我为我们的客户创建了一个设置项目 setup exe 和 setup msi 的图标是标准图标 我们的客户不想要这些图标 他们想要有看起来像他们的标志的图标 是否可以将 exe 和 msi 图标更改为不同的图标 您可
  • 如何在 Visual Studio 中使用 .NET 5(隔离进程)调试 Azure Functions?

    我最近从 NET Core 3 1 迁移到 NET 5 0 使用隔离 进程外运行时 对于 C 中的 Azure Function 项目 一切都按预期进行 但是 每当我调试时 我的断点都不会命中 为什么我以前可以 但现在无法调试 Azure
  • AngularJS ng-view 不工作

    所以我遵循了这个指南 http viralpatel net blogs angularjs routing and views tutorial with example 但是当我试图改变观点时什么也没有发生 有人知道我做错了什么吗 这是
  • Laravel 分组集合返回对象而不是数组

    我有以下查询 outings Outing all gt groupBy function item return Carbon parse item start gt format m d Y return response gt jso
  • std::thread 导致 DLLMain 死锁

    所以 这就是我要说的 std 很复杂 在VS2013中这个简单的程序会导致死锁 include
  • 更改 Flexdashboard 中各个文本部分的字体大小

    我正在使用 flexdashboard 创建报告 并且我只想更改页面一部分的字体大小 我觉得我可以通过添加 CSS 类来做到这一点 但我找不到如何在 R markdown 代码中指定类名 有任何想法吗 您可以将 CSS 直接添加到 Rmar
  • hash_map是STL的一部分吗?

    简单的问题 hash map 是 STL 的一部分吗 The STL has hash map 但是 C 标准库does not Due to 一个常见的误解 您可能会将 C 标准库视为 STL 或者将 C 标准库的工具链实现的部分视为 S
  • Win 7 DllImport C# 奇怪的错误,对内存位置的访问无效?

    我正在使用 DllImport 从 C 应用程序访问 C dll 中的某些函数 该代码在我的开发笔记本电脑 Windows 7 64 位 上运行良好 dll 本身是 32 位 因此我以 32 位运行托管 dll 的进程 并且运行良好 但是
  • 将 QSlider 移动到鼠标点击位置

    我有一个 QSlider 当用户按下鼠标左键时 我想将其移动到鼠标光标的位置 我一直在四处寻找 但找不到任何最近可以解决我的问题的东西 这是我的滑块 我希望能够单击使滑块跳转到鼠标单击的位置 我可以拖动滑块 但我希望能够单击 我测试了单击
  • 日语 ASCII 代码

    在哪里可以获得与日语汉字 平假名和片假名字符对应的 ASCII 代码列表 我正在做一个java函数和Javascript来确定它是否是日语字符 它的ASCII码范围是多少 ASCII代表美国信息交换标准代码 仅包含 128 个字符 并非所有
  • 在 Eclipse 中重命名访问器/修改器方法?

    当他们获取 设置的变量被重构 gt 重命名 Eclipse 3 4 时 有什么方法可以自动重命名访问器 修改器 1 当您对变量选择 重构 gt 重命名 时 Eclipse 会提示您在 内联 框中输入新名称 在它的正下方 有一条帮助消息 旁边
  • 使用 setCompoundDrawables 进行 EditText 时计算图像大小

    当我添加如下图标时 etComment EditText findViewById R id et comment Drawable img getResources getDrawable R drawable warning etCom
  • 如何在Play Framework中定义任意任务? (如红宝石耙子)

    如何在Play Framework中定义任意任务 我的意思是任务从命令行运行 类似于 ruby rake 我知道 ant 工具 但正在寻找更好的替代方案 对于 Play 2 您可以按照此处的文档使用 SBT 创建新任务 http www s
  • 我可以在不使用 HTTPS 连接的情况下使用 SSL 证书吗?

    我有点困惑 如果 SSL 证书有助于识别您已连接到受信任的服务器 那么为什么需要使用加密 HTTPS 连接呢 我可以使用 SSL 证书进行 HTTP 连接吗 这里有一个误解 证书不是 SSL 使用证书的是SSL 但证书是在SSL之前诞生的
  • 沿弧线对 UIView 进行动画处理

    我希望沿着图中所示的弧线对视图进行动画处理 从位置 1 到位置 2 实际发生的情况是 视图动画描述的是一个完整的圆而不是圆弧 我的问题是 我应该使用CGPath添加弧 or CGPath添加圆弧到点 我需要使用吗CGPath移动到点是否描述
  • RESTful删除策略

    假设我有一个资源 在调用删除时可以有两种不同的行为 资源被删除 资源被移至回收站 如何以符合 REST 的方式对其进行建模 我想到了以下解决方案 DELETE myresource 将资源移至回收站 默认行为 DELETE myresour
  • 检查 PowerShell 中每行的第一个字符是否有特定值

    我正在读取包含特定格式数字的文本文件 我想弄清楚该行的第一个字符是 6 还是 4 并将整行存储在数组中以供以后使用 因此 如果该行以 6 开头 则将整行添加到 SixArray 中 如果该行以 4 开头 则将整行添加到 fourArray
  • 核心运动错误102是什么意思?

    我使用 Core Motion 的传感器融合来获取北向运动更新 motionManager startDeviceMotionUpdatesUsingReferenceFrame CMAttitudeReferenceFrameXTrueN
  • 如何将 openssl 添加到 swift 项目

    我正在学习如何向我的 iOS OSX 项目添加应用内购买收据验证 有一个很好的概述hereWWDC14 有关于这个主题的精彩视频 示例代码很多 但每个人都跳过一步 如何导入 openSSL 标头 swift 编译器抱怨没有这样的模块 imp
  • 在一个 SQL 查询中合并两个表并使日期值唯一

    我有以下两个表 您也可以在 SQL fiddle 中找到它们here CREATE TABLE Inbound Inbound Date DATE Product TEXT InboundType TEXT Quantity VARCHAR