我的客户的报告接受日期范围,以获得显示预计收入的报告。因此,用户输入的日期范围为“2015年1月1日至2015年1月31日”,报告应仅返回按周分组的“2015年1月1日至2015年1月31日”范围内的数据。相反,我将在12/29/2014(2015年1月1日落入)和2015年2月1日(2015年1月31日进入)的那一周。该报告旨在按周分组,但我不希望报告上的日期早于开始日期参数或晚于结束日期参数。
此报告的sql语句为:
SELECT job.job, job.status, job.customer_po, job.part_number, job.unit_price,
job.price_uofm, delivery.promiseddate, delivery.remaining_quantity, job.build_to_stock, job.description, job.make_quantity, job.pick_quantity, job.shipped_quantity, job.lead_days
FROM dbo.delivery as delivery RIGHT OUTER JOIN db.job as job on delivery.job = job.job
WHERE job.build_to_stock = 0 AND (job.status = 'active' OR job.status = 'hold' OR job.status = 'pending')
日期范围来自此代码和参数:
Max – Maximum(?Date Range)
Min – Minimun(?Date Range)
Date Range - "From " & {@Min} & " to " & {@Max}
这是组表达式
Group 2 Name - GroupName ({@Adj Date 2}, "weekly") & " thru " & cdate(GroupName ({@Adj Date 2}, "weekly"))+6
这是选择表达式
{@Date} = {?Date Range} and
not {Job.Build_To_Stock} and
{Job.Status} in ["Active", "Hold", "Pending"]
你知道如何防止日期范围之外的日期“溢出”吗?
THX
答案 0 :(得分:0)
只要您在记录选择公式中有日期过滤,就不会有任何"溢出"超出该范围。如果您有{Record.Date} in Minimum({?DateRange}) to Maximum({?DateRange})
,听起来就像这样,那么无论您如何对报告进行分组,您的报告都不会包含参数以外的任何记录。
您的问题可能源于过度复杂化或误解分组。您需要做的就是按{Record.Date}
分组并选择"按周分组"在分组选项中...你不需要任何复杂的公式来按周分解它。但请注意,提到周的方式是他们的开始日期。例如,如果您的记录的日期为2015年2月19日,那么该记录将属于标记为" 2月的组。 15,2015"即使您的{?DateRange}参数是2月18日 - 2月15日。