2016-04-27 4 views
0

Я хочу передать один из параметров в Birt отчета и использовать его в нескольких palces, например:Как использовать один из параметров в нескольких местах в Birt докладе

SELECT * FROM tab1 WHERE startDAte = trunc(sysdate) 
UNION 
SELECT *FROM tab1 WHERE startDate= trunc(sysdate-1) 

Так я хочу, чтобы SYSDATE как переменная:

SELECT * FROM tab1 WHERE startDAte = trunc(?) 
UNION 
SELECT *FROM tab1 WHERE startDate= trunc(?-1) 

Как я могу это сделать? Благодаря

ответ

0

Это уже ответил Reusing an anonymous parameter in a prepared statement

Если база данных Oracle, вы можете также использовать следующий синтаксис:

WITH params AS 
(select ? as p_date, 
     ? as p_whatever, 
     ... 
    from dual 
) 
SELECT tab1.* FROM tab1, params WHERE tab1.startDate = trunc (params.p_date) 
UNION 
SELECT tab1.* FROM tab1, params WHERE startDate= trunc (parms.p_date - 1) 

Заметим, что это не оказывают негативное влияние на производительность, потому что БД достаточно умна, чтобы обнаружить, что params inline-view содержит ровно одну строку.