下午好。我正在尝试制作一份报告,显示每月的股票持有量摘要。
我使用的表具有以下数据(数据类型): 站点(字符串),客户(字符串),周结束日期(int - YYMMDD格式),结算余额(int)
看起来像这样:
Site Cust Wk End Bal
UK - Dave - 110821 - 25
UK - Sam - 110821 - 15
UK - John - 110821 - 30
UK - Dave - 110828 - 80
UK - Sam - 110828 - 30
UK - John - 110828 - 10
UK - Dave - 110904 - 100
UK - Sam - 110904 - 29
UK - John - 110904 - 51
UK - Dave - 110911 - 97
UK - Sam - 110911 - 34
UK - John - 110911 - 12
我想要找到的是每个站点的最大每周结算余额。这样它可以显示如下信息:
UK - 08/11 - 120
UK - 09/11 - 180
它需要为每个站点生成每月一行,其中包含该月的最大周数。
月/年公式是从周末到拉月/年的几个子串(记住数据是YYMMDD格式)。
当我在使用整个网站的组和使用公式生成MM / YY的水晶中尝试此操作时。在尝试获取本月每周摘要的最大值时,我总是收到“无法概括此字段”错误。
编辑:我编写了SQL来返回一个站点的结果。这可能有助于更好地解释问题。请参阅以下内容: Firstly a definition for clarity MMYY=(substr(A.WEEKEND,3,2)||'/'||substr(A.WEEKEND,1,2))
select distinct(MMYY) as Month, MAX(B.CLOSEBAL) as MonthMax
from balance_file as A
join(
select MMYY as dte,
sum(CLOSING) as CLOSEBAL
from balance_file
where SITE='UK'
group by WEEKEND
order by WEEKEND)
as B on MMYY=B.dte
where WEEKEND>110101 and WEEKEND<110505
group by WEEKEND
order by Month
答案 0 :(得分:2)
首先,设置您的组:创建一个公式,将该周结束日期整数转换为日期。现在,您可以在刚刚创建的新日期公式上对网站和内部组进行外部分组。在后一组中,您可以设置按月打印(组专家 - &gt;选项 - &gt;“此部分将打印:每个月”)。
接下来,只需对{table.close_balance}上的每个内部组进行最大摘要。 (插入摘要 - &gt;字段汇总:{table.close_balance},计算此摘要:最大值,汇总位置:第2组{@DateFormula})。
现在每个组页脚2将显示整个月以及每个站点当月的最大每周结束余额。
好的,让我们再试一次。
除了上面的两个组(站点和月),您还可以使用相同的公式按周添加最终内部分组。所以G1 - 站点,G2 - 月和G3 - 周。
创建一个公式{@reset},可以放在Group Header 2中并重置变量'max'。
whileprintingrecords; numbervar max := -1
创建另一个公式,该公式可放置在组页脚3中,以便在适当时更新“max”变量。
whileprintingrecords;
numbervar max;
local numbervar weeklySum := sum();
if max < weeklySum then max := weeklySum
最后,创建第三个公式,可以放在组尾2中以显示每月最大摘要。
whileprintingrecords;
numbervar max
答案 1 :(得分:0)
我认为您可以使用总计而不是变量来执行此操作。
写一个公式TotalClosingBal
:
Sum({ClosingBal}, {WeekEnd})
然后创建一个总计:
TotalClosingBal
{WeekEnd}
{Month}