Question

I'm trying to add a line to my WHERE clause based on a value selected by the user on a Japser iReport web interface.

Select KeyId, Name, WorkOrder
FROM orderTbl oT
WHERE

------- ?????????????????? --------------

If userSelectedValue = 'Load'
        oT.workOrder = 'accepted'
End If

------- ?????????????????? --------------

I tried to follow a CASE example but that creates a new column with the results but don't know how to use the new value to only get the records I want.

Select KeyId, Name, WorkOrder
case 
  when userSelectedValue = 'Load' and workOrder  ='accepted' then 'useWorkOrder'
     else 'noWorkOrder'
end as "dropDown",

dropDown          KeyId  Name           WorkOrder
----------------  -----  -------------  --------------
useWorkOrder      45     John Doe       accepted
useWorkOrder      78     Bill Kearns    accepted
noWorkOrder       23     Sandy York     null

My Final Goal:
Retrieve 2 records if user selects "Load" from a drop-down (userSelectedValue="Load")
- 45     John Doe 
- 78     Bill Kearns
Retrieve 1 record if user selects "Retrieve" from a drop-down (userSelectedValue="Retrieve")
- 23     Sandy York
Was it helpful?

Solution 3

Solution:

I used a combo of all your ideas to get this working. Special thanks to Joseph B + gubble.

Problem:

Select KeyId, Name, WorkOrder
FROM orderTbl oT
WHERE
If userSelectedValue = 'Load'
        oT.workOrder = 'accepted'
End If

Answer:

Select KeyId, Name, WorkOrder
FROM orderTbl oT
WHERE
 case 
    when (oT.KeyId = userSelectedValue AND oT.workOrder = 'accepted'
          OR de.KeyId = userSelectedValue)
       then 'useWorkOrder'
       else 'noWorkOrder'
 end = 'useWorkOrder'

OTHER TIPS

The simplest modification you can do is:

Select KeyId, Name 
WHERE case 
  when userSelectedValue = 'Load' and workOrder  ='accepted' then 'useWorkOrder'
     else 'noWorkOrder'
end = 'useWorkOrder'

You do not have to use CASE. You can use compound conditions:

SELECT KeyId, Name 
FROM orderTbl
WHERE (userSelectedValue = 'Load' and workOrder = 'accepted' AND DropDown = 'useWorkOrder')
OR    (DropDown = 'noWorkOrder');
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top