Search code examples
sqljasper-reports

Conditions on an sql query to return specific records


I'm creating an sql query where i have 3 fields --> NUMBER,COMPANY_NAME,END_DATE. What i'm trying to do is give the user the option to whether input or not input NUMBER and COMPANY...But END_DATE must be mandatory. However when i leave both NUMBER and COMPANY empty, and only input END_DATE, i don't receive any record. Any help?

where L.NUMBER = $P{LEASE_NUMBER}
OR L.COMPANY_NAME = $P{COMPANY_NAME}
AND (L.END_DATE BETWEEN $P{DateFrom} AND $P{DateTo}
OR $X{EQUAL, L.END_DATE, dateRange})

Solution

  • I think this is closer to the logic you are looking for:

    where (L.NUMBER = $P{LEASE_NUMBER} OR $P{LEASE_NUMBER} IS NULL) and
          (L.COMPANY_NAME = $P{COMPANY_NAME} OR $P{COMPANY_NAME} IS NULL) and
          (L.END_DATE BETWEEN $P{DateFrom} AND $P{DateTo} OR
           $X{EQUAL, L.END_DATE, dateRange}
          )
    

    I'm not sure about the expression on time. Your question has not explanation of DateFrom.