根据条件合并不同行的字段

2024-03-31

亚马逊为其市场客户提供 CSV 报告,其中包含有关您销售的每篇文章的信息。每篇文章有四行,如下所示:

+----------------------+------------+-------------------+--------+
|       orderid        | amounttype | amountdescription | amount |
+----------------------+------------+-------------------+--------+
| 305-2406165-0572365  | ItemPrice  | Principal         | 2.98   |
| 305-2406165-0572365  | ItemPrice  | Shipping          | 3.89   |
| 305-2406165-0572365  | ItemFees   | Commission        | -0.45  |
| 305-2406165-0572365  | ItemFees   | ShippingHB        | -0.59  |
+----------------------+------------+-------------------+--------+

正如您所看到的,每篇文章都有四行,两行代表实际售价,两行代表我必须向亚马逊支付的费用。

我使用 MySQL 将此 CSV 文件导入到 SQL 表中。选择包括价格在内的一些数据如下所示:

SELECT DISTINCT
    report.posteddate AS Date,
    orders.OrderID,
    orders.ExternalOrderID AS AZNr,
    report.amount AS ArtPrice
FROM
    report,
    orders
WHERE
    orders.ExternalOrderID = report.orderid
        AND report.amountdescription = 'Principal'
        AND report.transactiontype = 'Order'
ORDER by Date DESC

为了仅获取商品价格而不包含运费,我进行了选择以仅获取 amountdescription 为“Principal”的行。为了解决我的问题,可以忽略交易类型。

我想做的事:

我想提取 amounttype 为“ItemFees”的 amount 的两个字段,将它们添加在一起并将结果显示为单个字段。选择后,一行应如下所示:

+------------+---------+---------------------+----------+-------+
|    Date    | OrderID |        AZNr         | ArtPrice | Fees  |
+------------+---------+---------------------+----------+-------+
| 24.07.2014 |  267720 | 305-2406165-0572365 | 2.98     | -1.04 |
+------------+---------+---------------------+----------+-------+

我尝试为两行运行子查询,并选择 amounttype = "ItemFees" 并合并结果,但最终出现错误,指出我的子查询返回多于一行。这是查询:

SELECT DISTINCT
    report.posteddate AS Date,
    orders.OrderID,
    orders.ExternalOrderID AS AZNr,
    report.amount AS ArtPrice,
    (SELECT 
            SUM(report.amount)
        FROM
            report,
            orders
        WHERE
            orders.ExternalOrderID = report.orderid
                AND report.amountdescription = 'Commission') +
    (SELECT 
            SUM(report.amount)
        FROM
            report,
            orders
        WHERE
            orders.ExternalOrderID = report.orderid
                AND report.amountdescription = 'ShippingHB') AS Fees
FROM
    report,
    orders
WHERE
    orders.ExternalOrderID = report.orderid
        AND report.amountdescription = 'Principal'
        AND report.transactiontype = 'Order'
ORDER by Date DESC

有谁知道如何在给定条件下对两个不同行中的两个值求和(请参阅 WHERE 子句)?另外,我需要提取运费,但我认为这是同一个问题。

先感谢您。


您可以使用两个查询计算 itemprice 和 itemfees 并将它们连接起来

select a.orderid, a.price, b.fees
from (select orderid, sum(amount) price from report where amounttype='ItemPrice' group by orderid) a
     join (select orderid, sum(amount) fees from report where amounttype='ItemFees' group by orderid) b
     on a.orderid = b.orderid

假设至少有一行包含 itemprice 和一行包含 itemfees。否则你应该使用外连接。

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

根据条件合并不同行的字段 的相关文章

  • MySQL JOIN 滥用?情况会变得有多糟糕?

    我读了很多关于关系数据库的文章 在每个 SELECT 上使用许多 JOIN 语句 但是 我一直想知道滥用这种方法从长远来看是否会出现任何性能问题 例如 假设我们有一个users桌子 我通常会添加 最常用 的数据 而不是进行任何额外的联接 例
  • SQL:如何从一个表中获取另一个表中每一行的随机行数

    我有两个数据不相关的表 对于表 A 中的每一行 我想要例如表 B 中的 3 个随机行 使用光标这相当容易 但速度非常慢 那么我该如何用单个语句来表达这一点以避免 RBAR 呢 要获得 0 到 N 1 之间的随机数 可以使用 abs chec
  • MySQL:如何仅获取正值的平均值?

    假设我有 INT 列 并且我使用 1 来表示插入时没有可用数据 我想获得该列中所有 0 或更大值的平均值 这可能吗 Thanks 我忘了提及 我正在与其他 AVG 一起执行此操作 因此从选项卡中选择 avg a avg b avg d 所以
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • SQL Server 中离线索引重建和在线索引重建有什么区别?

    重建索引时 有一个选项ONLINE OFF and ONLINE ON 我知道当ONLINE模式打开时 它会复制索引 切换新查询以利用它 然后重建原始索引 使用版本控制跟踪两者的更改 如果我错了 请纠正我 但是 SQL 在离线模式下会做什么
  • 针对约 225 万行的单表选择查询的优化技术?

    我有一个在 InnoDB 引擎上运行的 MySQL 表 名为squares大约有 2 250 000 行 表结构如下 squares square id int 7 unsigned NOT NULL ref coord lat doubl
  • 具有不同组合的产品和产品包的数据库模型

    您将如何设计数据库来实现此功能 考虑一个场景 我们想要创建一个产品关系 封装 假设我们创建一个产品表 prod id prod name prod fee 1 prepaid A 19 usd 2 prepaid B 29 usd 3 pr
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的
  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • 消息 203,级别 16,状态 2,不是有效标识符

    我收到以下错误 消息 203 级别 16 状态 2 过程 getQuestion 第 18 行名称 select top 1 from tlb Question inner join tlb options on tlb options q
  • SQL Server 2005 是否有与 MySql 的 ENUM 数据类型等效的数据类型?

    我正在开发一个项目 我想在表中存储一些容易枚举的信息 MySql 的枚举数据类型正是我想要的 http dev mysql com doc refman 5 0 en enum html http dev mysql com doc ref
  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • MySQL:@@ 是什么意思?

    我正在阅读本页上的 MySQL 文档 http dev mysql com doc refman 5 1 en set statement html http dev mysql com doc refman 5 1 en set stat
  • SKIP加锁和nowait的区别

    pl sql 中 SKIP 锁定游标和 nowait 游标之间的区别 我认为我找到的这张图片是描述差异的最佳例子 详细说明 http viralpatel net blogs oracle skip locked
  • 如何将所有父母的父母作为循环引用表中子对象的列?

    我有一个表格 其中有类似的列 entityID entityName parentID 我如何编写一个查询来返回实体的所有父级级别 以返回类似的内容 childentityname parentlevel1name parentlevel2
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 查询为空 Node Js Sequelize

    我正在尝试更新 Node js 应用程序中的数据 我和邮递员测试过 我的开发步骤是 从数据库 MySQL 获取ID为10的数据进行更新 gt gt 未处理的拒绝SequelizeDatabaseError 查询为空 我认识到 我使用了错误的
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了

随机推荐

  • 在 React 中将组件数组作为 Props 传递

    我正在寻找一种将组件数组传递给选项卡组件的道具的方法 只是想知道这是否可能 因此 我需要创建一个组件来缩短材质 ui 的选项卡方法 但我找不到一种方法来将组件数组作为 prop 传递 以便将其渲染在该组件上 这是我的代码的示例
  • 文件被隐藏了吗?

    如何确定某个路径是否指向隐藏文件 文件夹 NSString file my file some where BOOL fileIsHidden lt what do I do here 我知道隐藏文件以句点为前缀 这不是隐藏文件的唯一标准
  • 将现有 java 项目转换为 osgi 包的最佳方法

    我们有很多组件 我们只想模块化其中的几个 想知道 在我的构建环境的上下文中 从所有这些组件创建捆绑包的最佳方法是什么 我的环境 Java 6 Maven 2 2 1 Hudson 技术 Spring 3 0 5 WebSphere 7 Hi
  • 故障安全集成测试期间的错误不会导致 Maven 构建失败

    我有 Failsafe 运行 Selenium 集成测试 如果我在测试中的断言之一未通过并且测试失败 那么 Maven 构建将按预期失败 但是 如果测试错误 构建会意外成功 输出如下 Tests run 1 Failures 0 Error
  • 使用 OleDbConnection 连接

    我正在尝试连接到具有两个表的数据库 但是 当我尝试登录后 出现错误 该错误表明零点处没有行 我认为这是因为我的联系 using System using System Collections Generic using System Lin
  • sscanf 读取数据不准确

    在 Matlab 中 可以将元胞数组中数字的字符串表示形式转换为双精度数组中的数字表示形式str2double或组合str2num and cellfun A 最近贴文 https stackoverflow com a 21794549
  • 是否可以使用 Selenium WebDriver 来自动化桌面应用程序?

    我正准备为目前处于开发初始阶段的 Web 桌面应用程序编写自动化测试 将使用的技术是 Laravel VueJS 和最重要的 Electron Framework Electron 是一个使用 JavaScript HTML 和 CSS 等
  • 从 SQL Server 2008 中的所有表中选择所有列

    如何从数据库的所有表中选择所有列 例如 Select From 在 SQL Server 2008 中 表列表非常非常大 并且有这么多列 是否可以不写列名来完成 或者也许进行一个返回表名称的选择 这个 SQL 将执行此操作 DECLARE
  • 设置对象彼此相等(java)

    所以我有一个名为 Person 的类 看起来像这样 public class Person private String personName public String toString return personName public
  • 使用 AutoFac 注入通用类型参数

    我想我真的很困惑我能用 AutoFac 做什么 有人可以让我走上正轨吗 我有一个基本类型 class PersonBase public string SaySomething return I am base 我派生出两个具体的类 cla
  • 自定义 ViewGroup 焦点处理

    假设我有一个可聚焦的自定义 ViewGroup 并且有一些可聚焦的子视图 适用于 Android 机顶盒的自定义垂直菜单 应在遥控器上做出反应 每当自定义 ViewGroup 获得焦点时 我需要将焦点传递给某些子视图 I set desce
  • 布局渲染后如何初始化 jQuery 对象?

    我想定义一些变量 以便在我的应用程序布局呈现后立即用于确定 jQuery 选择器的范围 我尝试用以下方式定义它们 Meteor startup function Define variables 但它不起作用 对象是空的 这是我声明我的应用
  • Pvr 在 cocos2d 3.2 版本中翻转:从 2.1 移植时的困境

    我目前正在将一个游戏从cocos2d 2 1版本移植到3 2版本 我们有超过 3600 个未翻转的 pvr gz 文件 例如在 2 1 下生成和工作的文件 我们使用TexturePacker测试了pvr图像的flipY选项 并且确实有足够的
  • Apache Ignite - (jvm-pause- detector-worker) JVM 暂停时间可能过长:

    使用 apache ignite 2 6 后 我在 JBoss 启动和停止时不断收到此警告 您能否帮我知道什么错误的配置会导致此警告 如果您需要更多详细信息 请告诉我 最有可能的是 JVM 正在经历长时间的垃圾收集暂停 可以配置详细的GC日
  • Keras 中的 5 层 DNN 使用 GPU 训练速度较慢

    我在 Keras 1 2 中使用 tensorflow gpu 作为后端编写了一个 5 层密集网络 并在我的 MacBookPro CPU 和 AWS 中的 P2 xlarge 实例 K80 启用 cuda 中对其进行训练 令人惊讶的是 我
  • 在事件中对 HTML 表格单元格(或整行)的背景颜色进行动画处理

    我有一张桌子 上面有一个菜单 食品 有几行和几列 第二列包含食品的链接 当用户点击它时 该商品已添加到购物车中 我想给用户一些点击和添加的视觉反馈 确实有效 我已经有一个用于添加链接的点击处理程序 商品点击进入购物车 一个简单的alert
  • 如何计算从 Shiny 中的文本输入框获取的数据?

    ui code library shiny shinyUI Use a fluid Bootstrap layout fluidPage Generate a row with a sidebar sidebarLayout Define
  • 将日期转换为特定格式的字符在R中

    我需要映射 3 4 个具有不同日期格式的不同数据帧 我们如何将日期转换为以下格式 YYYY MM DD 转换为以下格式的字符 MMM YY 从字符串创建日期对象 如果您的列已采用日期格式 请跳过此操作 original date lt as
  • 防止 SliverAppBar 标题在 Flutter 中收缩时换行

    我有一个 Flutter 应用程序 它在 CustomScrollView 中使用 SliverAppBar SliverAppBar 的标题非常长 因此当 AppBar 在滚动时压缩时 标题开始换行几次 我想在不使用溢出的情况下防止这种行
  • 根据条件合并不同行的字段

    亚马逊为其市场客户提供 CSV 报告 其中包含有关您销售的每篇文章的信息 每篇文章有四行 如下所示 orderid amounttype amountdescription amount 305 2406165 0572365 ItemPr