mysql - 如何列出一年中的记录,从一月到十二月甚至为空

标签 mysql

我正在做一份报告,让用户输入年份和股票代码。该报告将显示用户所选年份 1 月至 12 月期间某商品的月销售额。即使数据不存在,结果也必须是全部 12 个月。

set @yyyy = 2016;

select date_format(bb.bill_date, '%m/%y') as date_1, sum(bb.Qty), stockcode
from
(
select  1 as srce, zz.qty Qty, zz.stkcode stockcode, ll.bill_date bill_date 
FROM posbila ll, posbilb zz

WHERE 
    ll.bill_no = zz.receive_ID 
    AND 
    zz.stkcode >= '0' 
    AND 
    zz.stkcode <= 'zz' 
    AND 
    date_format(ll.billdate,"yyyy") = 2016

group by zz.StkCode, ll.bill_date
union select 2, 0, concat(@yyyy,'-01-31') 
union select 2, 0, concat(@yyyy,'-02-01') 
union select 2, 0, concat(@yyyy,'-03-31')
union select 2, 0, concat(@yyyy,'-04-30') 
union select 2, 0, concat(@yyyy,'-05-31') 
union select 2, 0, concat(@yyyy,'-06-30')
union select 2, 0, concat(@yyyy,'-07-31') 
union select 2, 0, concat(@yyyy,'-08-31') 
union select 2, 0, concat(@yyyy,'-09-30')
union select 2, 0, concat(@yyyy,'-10-31') 
union select 2, 0, concat(@yyyy,'-11-30') 
union select 2, 0, concat(@yyyy,'-12-31') 
) as bb

left join icstk kk on bb.stockcode = kk.stockcode

Group By 1, date_1

I have this query :
date_1    stkcode   Qty   stockcode    description
02/16     COKE      13    COKE         COKE123
03/16     COKE      112   COKE         COKE123
04/16     COKE      6     COKE         COKE123
06/16     COKE      5     COKE         COKE123

但我想要类似的东西:

date_1    stkcode   Qty   stockcode    description
01/16               0
02/16     COKE      13    COKE         COKE123
03/16     COKE      112   COKE         COKE123
04/16     COKE      6     COKE         COKE123
05/16               0
06/16     COKE      5     COKE         COKE123
07/16               0
08/16     COKE      5     COKE         COKE123
09/16               0
10/16               0
11/16     COKE      15    COKE         COKE123
12/16     COKE      25    COKE         COKE123

最佳答案

You can add JAN to DEC month entry in tempTable and left join that table with your statement

关于mysql - 如何列出一年中的记录,从一月到十二月甚至为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38518429/

相关文章:

php - 在 PHP 页面之间传递变量然后执行 MySQL 搜索

mysql - 如何在连接操作中使用like运算符

mysql - 如何使用session获取当前用户的信息

Mysql 单独使用 sql 语句插入多行逗号分隔值

php - 如何在php mysql中实现反向ajax来获取数据库更新

mysql - VB.net MySQL 连接检查不工作/缓慢

mysql - 自表上的 INNER JOIN

MySQL 隐藏了我的例程(存储过程)

mysql - 在 MySQL 中,如何在 FORMAT() 之后按数字顺序对字段进行排序?

mysql - SQL 查询根据连接是否存在有条件地从表中选择一行