我在Jasperreport中遇到了SQL查詢問題。 查詢是這樣的:SQL查詢適用於開發人員,但不適用於JasperSoft Studio
select distinct
t.costcenter,
t.workplace,
t.sap_master_key,
t.product_family,
mb.max_module_name
from
timings t,
max_bbz_per_timing mb
where (
($P{Kostenstelle} is not null and
$P{APS} is not null
and t.timing_id in (
select
timing_id
from
timings
where costcenter = $P{Kostenstelle}
and workplace = $P{APS}
)
)
or
($P{Kostenstelle} is not null
and $P{APS} is null
and t.timing_id in (
select
timing_id
from
timings
where costcenter = $P{Kostenstelle}
)
)
or
($P{Kostenstelle} is null
and $P{APS} is not null
and t.timing_id in (
select
timing_id
from
timings
where workplace = $P{APS}
)
)
)
and mb.timing_id =t.timing_id
and mb.max_module_name is not null
$P{Kostenstelle}
和$P{APS}
是參數。他們都可以不是零或只有其中之一。當我在我的開發環境中嘗試這個SQL查詢時,它做它應該做的事情,但是在JasperSoft Studio中它只在$P{Kostenstelle} is not null and $P{APS} is null
時執行,否則它不會顯示結果。
我希望有人能幫助我,我很無能。
將是那些參數什麼樣的價值觀? – tobi6
進一步來看,難道你不能只用一個'LEFT JOIN'和一個'ON'子句而不使用三塊檢查? – tobi6
@ tobi6謝謝你的回答,但是Y.B的回答。爲我工作 – TheOneThing