我正在尝试合并报告。我使用类似的sql语句有2个相同的报告。唯一的区别是输入参数的使用方式。
在第一个报告中,用户输入父号码(111),并选择111.000和111.999之间的所有子订单。如果用户输入父母和孩子(即111.013),则所有孩子都将从111.013返回到111.999。
声明1:
SELECT ordernumber
FROM table1
WHERE ordernumber >= $P{Parameter1}
and ordernumber < $P{Parameter1} +'1'
第二个语句仅选择给定父级和子级的单个订单(111.013)。
声明2:
SELECT ordernumber
FROM table1
WHERE ordernumber = $P{Parameter1}
有没有办法将这些语句组合起来使用不同的输入来获得正确的输出?
答案 0 :(得分:0)
如果再传入一个参数,可以说$ P {Parameter2},表示要使用的语句。如果$ P {Parameter2}为真,则使用语句1,否则使用语句2.可以使用以下查询。
SELECT ordernumber FROM table1 WHERE(ordernumber&gt; = $ P {Parameter1} 和ordernumber&lt; $ P {Parameter1} +1和$ P {Parameter2})或(ordernumber = $ P {Parameter1}和!$ P {Parameter2})