【发布时间】:2018-05-28 10:55:08
【问题描述】:
我有一个存储客户服务数据的表。表/视图具有以下结构。
userid calls_received calls_answered calls_rejected call_date
-----------------------------------------------------------------------
1030 134 100 34 28-05-2018
1012 140 120 20 28-05-2018
1045 120 80 40 28-05-2018
1030 99 39 50 28-04-2018
1045 50 30 20 28-04-2018
1045 200 100 100 28-05-2017
1030 160 90 70 28-04-2017
1045 50 30 20 28-04-2017
这是示例数据。数据按天存储。
我必须在以日期为输入的报表设计器软件中创建一个报表。当用户选择例如日期时。 2018 年 5 月 28 日。该日期作为参数 ${call_date} 发送。我必须以这样的方式查询视图,结果应该如下所示。如果用户选择日期 28/05/2018,则 28/04/2018 和 28/05/2017 的数据应并排显示,如下列顺序。
userid | cl_cur | ans_cur | rej_cur |success_percentage |diff_percent|position_last_month| cl_last_mon | ans_las_mon | rej_last_mon |percentage_lm|cl_last_year | ans_last_year | rej_last_year
1030 | 134 | 100 | 34 | 74.6 % | 14% | 2 | 99 | 39 | 50 | 39.3% | 160 | 90 | 70
1045 | 120 | 80 | 40 | 66.6% | 26.7% | 1 | 50 | 30 | 20 | 60% | 50 | 30 | 20
此查询的目的是在列中显示所选日期的数据、上个月同一天的数据和往年同一天的数据,以便用户查看和比较。此处结果按所选日期的百分比(ans_cur/cl_cur)按计算百分比的降序排列,并显示在 success_percentage 下。
列 position_last_month 是该特定员工在上个月的职位,按百分比降序排列。在此示例中,用户 ID 1030 上个月排名第二,用户 ID 1045 上个月排名第一。同样,我也必须计算这一年。
还有一个名为 diff_percent 的字段,它计算上个月处于同一位置的人之间的百分比差异。我去年也必须这样做。我怎样才能达到这个结果。请帮忙。
【问题讨论】:
-
您的谷歌搜索字符串是“sql server pivot query”。
标签: sql sql-server view pivot pentaho-report-designer