我有这张桌子:
MonthList (month_name, ticket)
我想得到特定月份的次数。
例如在Q2中,我运行以下查询:
SELECT month_name as 'Month', count('Month') as 'Ticket Count' from Monthlist
where month_name in ('May', 'June', 'July')
group by Month order by Month asc
现在如果没有包含May的行,那么结果中根本不会返回May,我会得到这样的结果:
6月5日
7月10日
我希望上面的列表也包含May 0
。
答案 0 :(得分:0)
为此,您最好在月份表(包含月份名称)和票证表(包含票证)之间执行连接。
一个月会有一个整数ID,而ticket表会有一个指向月表的列链接。
然后,您将执行此类SQL查询。
SELECT
months.month_name AS 'Month',
count(tickets.id) AS 'Ticket Count'
FROM
months
LEFT JOIN
tickets
ON
tickets.month_id = months.id
GROUP BY
months.id
这样可以减少您在故障单表格中重现的数据量,并且更加灵活。
上面的查询未经过测试,但我非常确定应该完成这项工作,当然,只要您的数据库具有所需的表格。
使用月份名称的第二个示例,并按特定月份进行过滤。
SELECT
months.month_name AS 'Month',
count(tickets.id) AS 'Ticket Count'
FROM
months
LEFT JOIN
tickets
ON
tickets.month_name = months.month_name
WHERE
months.month_name IN ("May","June","July")
GROUP BY
months.month_name
ORDER BY
months.month_name ASC