mysql - MySQL 查询辅助将过滤应用于两列
问题描述
您好,我不确定如何执行此查询以寻求指导...
输出应该是具有单行“2004 年总销售额”的
列和具有单行“2005 年总销售额”的另一列。
使用 classicmodels.orders (orderNumber, OrderDate) 和 classicmodels.orderdetails(orderNumber,PriceEach)
您如何将过滤子句应用于两个不同的列?
提前致谢
解决方案
您似乎正在寻找条件聚合:
SELECT
SUM(CASE WHEN YEAR(o.OrderDate) = 2004 THEN od.PriceEach ELSE 0 END) Total_Sales_for_2004,
SUM(CASE WHEN YEAR(o.OrderDate) = 2005 THEN od.PriceEach ELSE 0 END) Total_Sales_for_2005
FROM
orders o
INNER JOIN orderdetails od ON od.orderNumber = o.orderNumber
WHERE YEAR(o.OrderDate) IN (2004, 20O5)
推荐阅读
- reactjs - 模态倒计时
- javascript - 自定义十进制函数
- jsp - Java、Servlet、JSP 和 WAS 兼容性
- python - 这是在 2 个线程之间使用变量的正确方法吗?
- ruby-on-rails - 构建.rb文件时的崇高文本失败并给我“bash:ruby:找不到命令”
- php - Swift 邮件程序错误 500
- docker - 我试图创建一个 docker stack 服务,其中有多个操作系统容器要启动,但我无法做到这一点
- java-8 - 基于键按给定列表分组并在同一列表中收集的有效方法java 8
- asterisk - 星号:使所有呼叫通过分机进行
- java - 在查看照片时按电源按钮并打开共享菜单会导致黑屏