mysql - 将多个 MySQL 查询连接在一起

标签 mysql sql sql-server

我刚开始学习 MySQL,我在遇到问题时从这个网站学到了很多东西,但我遇到了困难 1. 我想为所有借记卡付款创建一个日志我的 3 家商店,按日期分组,每家商店 1 列,最后是总计列。根据我在此处找到的信息,我能够单独创建查询,但不确定如何将它们组合成 1 个输出。

查询以查找所有商店的总数:

SELECT DATE(s.sale_time) AS Date, SUM(p.payment_amount) AS Total
FROM pos_sales_payments p
JOIN pos_sales s on p.sale_id = s.sale_id
WHERE p.payment_type = "Debit Card" AND s.sale_time > "2018-01-01 00:00:00" AND s.deleted = "0"
GROUP BY date(s.sale_time)
ORDER BY s.sale_time

查询以查找商店 1 的总数:

SELECT DATE(s.sale_time) AS Date, SUM(p.payment_amount) AS Total
FROM pos_sales_payments p
JOIN pos_sales s on p.sale_id = s.sale_id
WHERE p.payment_type = "Debit Card" AND s.sale_time > "2018-01-01 00:00:00" AND s.deleted = "0" AND s.location_id = "1"
GROUP BY date(s.sale_time)
ORDER BY s.sale_time

最佳答案

只需使用条件聚合:

SELECT DATE(s.sale_time) AS Date, SUM(p.payment_amount) AS Total,
       SUM(CASE WHEN s.location_id = 1 THEN p.payment_amount ELSE 0 END) as Total_1
FROM pos_sales_payments p JOIN
     pos_sales s 
     ON p.sale_id = s.sale_id
WHERE p.payment_type = 'Debit Card' AND
      s.sale_time >= '2018-01-01' AND
      s.deleted = '0'
GROUP BY date(s.sale_time)
ORDER BY s.sale_time;

关于mysql - 将多个 MySQL 查询连接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48139652/

相关文章:

sql - PostgreSQL:如果表存在则返回函数否则 View 中为0

sql-server - VS 2012 SSDT 构建 CLR,IEnumerable 生成的语法失败

php - 区分大小写的查询

mysql - 如何避免mysql存储过程中的IN(Select...)子查询

具有动态内容的 PHP 表

php - 使用单个提交按钮将每行的值插入数据库的 while 循环

mysql - 在 MySQL 中搜索 JSON 数据中的属性的 SQL 查询

sql - SQL Server TRIM字符

sql-server - 可选择在 SQL Server Projects 2012 中包含脚本

sql - 在多个表中查找相似的名称