【问题标题】:One record in multiple Groups within Crystal Reports XICrystal Reports XI 中的多个组中的一条记录
【发布时间】:2012-02-23 09:52:43
【问题描述】:

我正在尝试基于票务系统创建报告。我们的目标是让一张图表包含多条线,一条是按周打开的票,另一条线是按周关闭的票。

我遇到的问题是当您对数据进行分组时,一条记录不能在多个组中。 但是,一张票可以在一个星期内打开,而在另一个星期内关闭。在该示例中,记录需要计算两次。

例如。 票号123456 开放日期:2012 年 1 月 1 日 关闭日期:2012 年 1 月 12 日

这张票在第 1 周打开,在第 2 周关闭。 问题是,如果您按开放周分组,然后按关闭周分组,它会按第一个过滤第二组。

基本上,我需要一种将数据分成多个组的方法,但总体目标是将它们显示在折线图中,其中线条显示每周打开和关闭的票证数量。

可能不是最好的描述,但很难描述? 有人有什么想法吗?

【问题讨论】:

    标签: crystal-reports grouping


    【解决方案1】:

    如果我在你那里我会修改你的 SQL 语句以包含如下内容:

    WITH DateTable 
    AS 
    ( 
        SELECT CAST((GETDATE() - 180) as Date) AS [DATE] 
        UNION ALL 
        SELECT DATEADD(dd, 1, [DATE]) FROM DateTable  
        WHERE DATEADD(dd, 1, [DATE]) < cast(GETDATE() as Date) 
    ) 
    

    上面创建了一个临时表,其中包含过去 180 天内的所有日期。然后添加一个新行以从该表中选择您的“日期”列到您的 SQL 查询中:

    SELECT "DateTable"."DATE", ....
    

    然后在您的 SELECT 语句之后使用 CROSS JOIN 连接两个表

    CROSS JOIN "DateTable"
    

    这会将您从如下所示的查询结果中提取出来:

    OrderNum DueDate  CompletedDate
    1        01/01/01 01/02/01
    2        01/01/01 01/01/01
    3        01/02/01 01/03/01
    4        01/02/01 01/02/01
    

    查询如下所示的结果:

    OrderNum DueDate  CompletedDate Date
    1        01/01/01 01/02/01      01/01/01
    2        01/01/01 01/01/01      01/01/01
    3        01/02/01 01/03/01      01/01/01
    4        01/02/01 01/02/01      01/01/01
    1        01/01/01 01/02/01      01/02/01
    2        01/01/01 01/01/01      01/02/01
    3        01/02/01 01/03/01      01/02/01
    4        01/02/01 01/02/01      01/02/01
    1        01/01/01 01/02/01      01/03/01
    2        01/01/01 01/01/01      01/03/01
    3        01/02/01 01/03/01      01/03/01
    4        01/02/01 01/02/01      01/03/01
    

    现在您可以使用简单的 Crystal Record Select 语句将结果减少到仅在给定日期打开的结果:

    {Ticket Open Date} < {Command.DATE} and
    {Ticket Close Date} > {Command.DATE}
    

    现在您在多个组中拥有相同的详细信息行。希望有帮助,P.S.如果我有更多关于您的查询或表结构的信息,我可能会更具体。

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多