我之前收到了一些非常好的帮助,我很感激。 我有另一个记录选择snafu。
我有一个参数需要设置为结束日期。
我需要从名为state_change的表中提取结束日期之前的最新状态。
我需要从报告中排除那段时间内未达到规定状态的记录。
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}
但是按项目级别。
任何帮助都将不胜感激。
答案 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
我无法判断您的订单和库存分组是否在同一个表中,因此我不确定您需要如何通过正确的状态值来限制您的设置。