2016-09-01 1 views
0

В моей таблице есть два поля cust_shipmentdate_awb и comp_shipdate_awb. Я пытаюсь написать заявление CASE, которое должно проверять оба поля cust_shipmentdate_awb, а comp_shipdate_awb - пустое или пустое. Если оба они имеют значение Null, тогда результат будет показан как «Ожидание». Если какое-либо одно поле не пустое, тогда оно должно отображаться как «Завершено». И если оба поля введены, это также должно быть «Завершено». Я попробовал приведенный ниже оператор CASE. Но его показ ожидается, когда будут введены данные полей.Заявление CASE с условиями

CASE  
When cust_shipmentdate_awb Is Null Or cust_shipmentdate_awb = '' Then 'Pending' 
Else 'Completed' End AS shipment_status 

ответ

0

Это должно работать

CASE 
When commercial_logi_freight.cust_shipmentdate_awb Is Null Or commercial_logi_freight.cust_shipmentdate_awb = '' Then commercial_logi_freight.comp_shipdate_awb 
Else commercial_logi_freight.cust_shipmentdate_awb End AS shipment_date, 
CASE 
When commercial_logi_freight.cust_shipmentdate_awb Is Null Or commercial_logi_freight.cust_shipmentdate_awb = '' Then 'Pending' 
Else 'Completed' End AS shipment_status 
+0

Сво работает отлично. Спасибо за ваше время –

1

Используйте подзапрос.

SELECT CASE WHEN shipment_date Is Null Or shipment_date = '' 
      THEN 'Pending' 
      Else 'Completed' 
     End AS shipment_status 
FROM (
    SELECT CASE 
      When commercial_logi_freight.cust_shipmentdate_awb Is Null Or 
commercial_logi_freight.cust_shipmentdate_awb = '' 
      Then commercial_logi_freight.comp_shipdate_awb 
      Else commercial_logi_freight.cust_shipmentdate_awb 
     End AS shipment_date 
    FROM ...) AS x 
1

Вы должны поместить запрос внутри подзапроса, то обратитесь к этому shipment_date поле за пределами этого подзапроса, как показано ниже:

SELECT 
subQuery.*, 
Case When shipment_date Is Null Or shipment_date = '' Then 'Pending' Else 'Completed' End AS shipment_stat 
FROM 
(
    #YOUR QUERY GOES HERE..... 
    SELECT 
    CASE 
    When commercial_logi_freight.cust_shipmentdate_awb Is Null Or 
    commercial_logi_freight.cust_shipmentdate_awb = '' Then 
    commercial_logi_freight.comp_shipdate_awb 
      Else commercial_logi_freight.cust_shipmentdate_awb End AS shipment_date 
    FROM your_table 

) AS subQuery 

Вы можете использовать только псевдонимы столбцов в GROUP BY, ORDER BY , или Оговорки .

Problem with alias