如果没有匹配的数据而不是返回0行,是否有办法返回零列呢?

时间:2018-12-23 10:58:12

标签: mysql

我有这个查询。

SELECT  
  FACTORY,  
  SUBSTR(dt,1,20 ) AS 'DATE',  
  SUM(count_a) AS 'PRODUCT A',  
  SUM(count_b) AS 'PRODUCT B', 
  SUM(count_a + count_b) AS 'TOTAL' 
FROM LIST 
WHERE DATE BETWEEN '2018-12-01' AND '2018-12-05'
GROUP BY COUNTRY, SUBSTR(dt,1,20)
ORDER BY COUNTRY, SUBSTR(dt,1,20);

'2018-12-03'没有匹配的数据
那么哪个返回值是这样的

FACTORY   |    DATE    |   PRODUCT A |  PRODUCT B |  TOTAL
-------------------------------------------------------------
Factory_A | 2018-12-01 |         5000|      10000 |   15000
Factory_A | 2018-12-02 |        10000|       5000 |   15000
Factory_A | 2018-12-04 |        10000|      10000 |   20000
Factory_A | 2018-12-05 |        15000|       5000 |   20000

但是我想在没有行符合以上条件时返回0。

像这样

FACTORY |     DATE     | PRODUCT A | PRODUCT B |   TOTAL
----------------------------------------------------------
Factory_A | 2018-12-01 |       5000|     10000 |   15000 
Factory_A | 2018-12-02 |      10000|      5000 |   15000
**Factory_A | 2018-12-03 |          0|          0|       0**
Factory_A | 2018-12-04 |      10000|      10000|   20000
Factory_A | 2018-12-05 |      15000|       5000|   20000

有什么方法可以将零放入一列而不是在MYSQL中返回0行吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑使用右外部联接。

对于此解决方案,您需要具有保存所有日期的CALENDAR表。

data-jstree='{"checked": true }'