2014-10-10 3 views
0

У меня есть отчет с 2 параметрами картонной упаковки и местоположения.Параметры командного уровня в отчетах о кристаллах

Предположим, что если я не дал какой-либо ценности среди тех, то он должен дать все значения.

Созданы 2 параметра уровня команды. Он показывает все значения, когда я не дал никаких значений в параметрах.

Но даже если бы я дал какую-то ценность ни в картонной коробке, ни при ее показе всех значений.

Пожалуйста, укажите, что это проблема

SELECT 
     crt.carton_no, crtd.part_no, SUM(crtd.quantity) AS quantity, 
     crtd.barcode, crtd.item_description 
     , crt.put_away_location AS putAway 
FROM 
     carton crt, carton_details crtd 
WHERE 
     crt.carton_id = crtd.carton_id 
     AND crt.status = 'N' AND 
    (crt.carton_no like '{?cartonno}' or '{?cartonno}' like '%') and (crt.put_away_location LIKE '{?location}' or '{?location}' like '%') 
GROUP BY 
     crt.carton_no, crtd.carton_id, crtd.part_no 
ORDER BY 
     crt.put_away_location, crt.carton_no 
+0

не дает каких-либо средств значение ? как вы manuplating? – Siva

+0

Любая строка 'like '%'' всегда будет возвращать true, поэтому последняя строка вашего предложения WHERE не на самом деле ничего не делает. – Ryan

+0

Привет, Шива, если я оставил оба параметра пустым, тогда он должен показать все значения на основе запроса. Предположим, что если я дал какое-то значение, тогда оно должно отображаться на основе этого. Вот что происходит, даже если я дал значение параметра карты или значения параметра location но stiil Я получаю данные для всех значений (параметр не фильтрует на основе местоположения и картона нет) – user3725135

ответ

-1

Я предполагаю, что ваш запрос всегда принимает истинное пренебрегая or состояние ... попробуйте использовать Case

where 
    CASE WHEN {?cartonno} Like "" 
      THEN 
       '{?cartonno}' like '%' 
      ELSE 
       crt.carton_no like '{?cartonno}' 
      END 

Note: I don't know which database you are using above is just an example of SQL... you can change it as required and use similarly for other parameter in where clause

+0

@ downvoter ... не спускайте вниз без анализа решения ... – Siva

Смежные вопросы