Crystal Reports:记录选择Snafu

时间:2012-08-21 17:30:16

标签: sql parameters crystal-reports record

我之前收到了一些非常好的帮助,我很感激。 我有另一个记录选择snafu。

  1. 我有一个参数需要设置为结束日期。

  2. 我需要从名为state_change的表中提取结束日期之前的最新状态。

  3. 我需要从报告中排除那段时间内未达到规定状态的记录。

  4. state目前设置为state_change.new_state

    ( {@grouping} = "Orders" and rec_date < {?endDate} and {@state} in [0,2,5] )
    
    OR
    
    ( {@grouping} = "Stock" and rec_date < {?endDate} and {@state} in [1,2,3,5,7] )
    

    如果我可以运行SQL查询来提取这些信息,它可能会起作用,但我无法弄清楚如何去做。

    基本上,我需要@state:

    Select max(new_state)  
    From state_change
    where change_time < {?endDate}  
    

    但是按项目级别。

    任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可能需要使用带有参数的命令对象作为结束日期,或者创建参数化存储过程。命令对象允许您输入所需的所有sql,例如在结束日期之前使用max newState值加入结果:

select itemID, new_state, rec_date, max_newState from
(select itemID, new_state, rec_date from table) t inner join
(Select itemID, max(new_state) as max_newState
    From state_change
    where change_time < {?endDate}  
    group by itemID) mx on t.itemid = mx.itemID and t.new_state = mx.max_newState

我无法判断您的订单和库存分组是否在同一个表中,因此我不确定您需要如何通过正确的状态值来限制您的设置。