我正在做一份报告,让用户输入年份和股票代码。该报告将显示用户所选年份 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/