Skip to content Skip to sidebar Skip to footer

Jasperreports: How To Add A Where Statement In Sql Query Depending On A Boolean Parameter?

How can I add a sub where statement in SQL if my Boolean parameter is true in JasperReports? For example, I have my SQL as below: SELECT * FROM shops WHERE region = 'Canada' ORDER

Solution 1:

You can add additional parameter for setting additional clause value. After that you can use $P!{} syntax in query.

The sample:

<parametername="param"class="java.lang.Boolean"/><parametername="whereCond"class="java.lang.String"isForPrompting="false"><defaultValueExpression><![CDATA[$P{param} ? " AND isactive='Y'" : ""]]></defaultValueExpression></parameter><queryString>
    <![CDATA[SELECT * FROM shops WHERE region='Canada' $P!{whereCond} ORDER BY name]]>
</queryString>

Solution 2:

You can do that direct in SQL

SELECT*FROM shops WHERE region = "Canada"
AND (@param<> `True` OR isActive ='Y')
-----^^^^^^^^^^^^^^^^--<< Condition: Your param is not true------ORDERBY name

Solution 3:

Try this

select*from shops where region = "Canada"
AND isActive =CASEWHEN@var='True'then'Y'ELSE isActive ENDorderby name

Post a Comment for "Jasperreports: How To Add A Where Statement In Sql Query Depending On A Boolean Parameter?"