0
我已經使用Ireport 4.5創建了一個報告,但報告運行速度很慢,我認爲僅僅是因爲多個UNION和JOINS。如何從Ireport調用時在程序中調用和添加條件?
我複製用於測試目的的簡單查詢: -
SELECT b.Project_Id,
b.Project_Manager,
b.project_title,
b.Project_location,
b.Project_Level,
SUM(COALESCE(b.Project_Budget, 0)) Projected,
SUM(COALESCE(c.Accounting, 0)) Actual
FROM t_authorized_budget a, t_project_c b,t_project_allocation c
WHERE a.Project_Id = b.Project_Id and b.project_id=c.`Key`
and a.Project_Id = c.`Key`
and $X{IN,b.project_location,p_project_location}
and $X{IN,b.project_manager,p_project_manager}
and $X{IN,b.project_id,p_project_id};
因此,我創建使用此查詢,但過程調用GetAllcompo()不
$X{IN,b.project_location,p_project_location}
and $X{IN,b.project_manager,p_project_manager}
and $X{IN,b.project_id,p_project_id};
我現在想添加這些在從Ireport呼叫的過程中的條件。 我該怎麼做?
另一個想法 - 如果你傳遞一個空至$ X {...它等於1 = 1。那麼如果你使用完整的WHERE子句會發生什麼,只是不要傳遞參數給$ X {...? – Lisa
我認爲如果我們沒有將任何參數傳遞給$ X {},這意味着沒有任何條件的所有值。您怎麼看? – Sharad
沒錯,它就像「和$ X {IN,b.project_location,p_project_location}」被替換爲「1 = 1」。它會給你所有的b.project_location值。 – Lisa