我需要根据详细数据创建摘要月度跟踪报告。数据样本如下:
公司|国家|加入日期
公司A |美国| 1/1/2011
公司B |爱尔兰| 2011/5/5
公司C |意大利| 2011年7月11日
公司D |德国| 6/14/2011
我需要创建一个报告,以下面的格式向我提供来自特定国家/地区的特定月份加入的成员数量:
国家1 |总计(1月)|总计(2月)|总计(三月等)|总和(每月总计)
国家2 |总计(1月)|总计(2月)|总计(三月等)|总和(每月总计)
国家3 |总计(1月)|总计(2月)|总计(三月等)|总和(每月总计)
在每列的底部,我需要所有国家/地区的每月总和。此外,此报告需要是滚动报告,因此当用户生成报告时,它将提供最新信息。
答案 0 :(得分:0)
你想要分两部分来做这件事。
首先,您将要从数据库中获取相关数据。可能最好通过以下声明完成:
SELECT country, year(join_date) as year, month(join_date) as month, count(*)
FROM trackingTable
WHERE join_date between :start_date and :end_date
GROUP BY country, year(join_date), month(join_date)
ORDER BY country, year, month
对于您的给定数据,这将生成以下示例:
Country Year Month Count
==================================
Germany 2011 6 1
Ireland 2011 5 1
Italy 2011 7 1
USA 2011 1 1
其次(我假设你用外语创建/格式化报告),顺序读取数据。鉴于ORDER BY
,每个国家/地区将是一个单独的序列。 Psuedo代码满足您的需求:
for each row in set {
if different country {
total up row, start new line
}
add month cell to column;
add month cell to month grand total;
}
total up grand total row, print/save