Это действительно странно, у меня есть SQL-запрос:
select p.NAME, p.MEASURING_UNIT, p.EAN, p.ITEM_NR, IF(f.FORM_TYPE = 'InventoryList', log.QUANTITY_DIFF, fi.QUANTITY) AS VAL_QUANTITY, IF(IF(f.FORM_TYPE = 'InventoryList', log.QUANTITY_DIFF, fi.QUANTITY)>0,fi.GROSS_MONEY,0) as VAL_GROSS_MONEY, f.FORM_DATE, f.FORM_TYPE, f.DIRECTION, f.FORM_NR, pd.NAME as PARTNER_NAME, ad.CITY,
case f.FORM_TYPE
when 'Quotation' then 'Quot.'
when 'Invoice' then 'Inv.'
when 'Shipment' then 'Ship.'
when 'Orders' then 'Ord.'
when 'FacilityForm' then 'FacF.'
when 'InventoryList' then 'InvL.'
else 'Else'
end as FORM_TYPE_CODE,
case f.DIRECTION
when 1 AND f.FORM_TYPE <> 'InventoryList' then 'Sale'
when 2 AND f.FORM_TYPE <> 'InventoryList' then 'Supply'
when 3 AND f.FORM_TYPE <> 'InventoryList' then 'Moving'
else 'Else'
end as DIRECTION_CODE
from product p join form_item fi on p.id = fi.product_id
join form f on fi.FORM_ID = f.ID
join partner_data pd on pd.ID = f.PARTNER_DATA_ID
join address_data ad on ad.ID = f.ADDRESS_DATA_ID
join inventory_log log on log.FORM_ITEM_ID = fi.ID
where p.id = 8
AND fi.ID IN (SELECT l.FORM_ITEM_ID FROM inventory_log l, inventory_item i, product p
WHERE l.INVENTORY_ITEM_ID = i.ID
AND i.PRODUCT_ID = p.ID
AND p.ID = 8 )
and f.status > 1
order by f.FORM_DATE
... и похоже, что вторая функция CASE не работает, как я ожидал.Прямо сейчас, если FORM_TYPE равен «FacilityForm» И НАПРАВЛЕНИЕ равно 2, я ожидаю, что вернусь в DIRECTION_CODE «Поставка», но я дам мне: «Остальное» ...
Если я удалю второе условиеиз этого и остается это:
when 2 then 'Supply'
это работает, но я не знаю почему ...
Может ли кто-нибудь помочь мне здесь, что я пропускаю?Спасибо.
Кстати.это результат запроса, и в последней строке указано неверное значение:
NAME MEASURING_UNIT EAN ITEM_NR VAL_QUANTITY VAL_GROSS_MONEY FORM_DATE FORM_TYPE DIRECTION FORM_NR PARTNER_NAME CITY FORM_TYPE_CODE DIRECTION_CODE
Test product pc EAN-PRD1 PROD-001 20000 1371600 2018-05-16 Invoice 1 INV-00003/2018 Partner Ltd. CityNameTest Inv. Sale
Test product pc EAN-PRD1 PROD-001 100000 1257300 2018-05-25 Invoice 1 INV-00006/2018 Partner Ltd. CityNameTest Inv. Sale
Test product pc EAN-PRD1 PROD-001 50000 380365 2018-06-02 Invoice 1 INV-00008/2018 Good partner Limited CityNameTest Inv. Sale
Test product pc EAN-PRD1 PROD-001 -33000 0 2018-06-27 InventoryList 1 INVL-00001/2018 New Partner CityNameTest InvL. Else
Test product pc EAN-PRD1 PROD-001 -40000 0 2018-06-29 InventoryList 1 INVL-00002/2018 InventoryList CityNameTest InvL. Else
Test product pc EAN-PRD1 PROD-001 -55000 0 2018-06-30 InventoryList 1 INVL-00003/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 -43000 0 2018-07-11 InventoryList 1 INVL-00004/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 30000 149850 2018-07-13 InventoryList 1 INVL-00014/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 21000 119880 2018-07-13 InventoryList 1 INVL-00012/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 0 0 2018-07-13 InventoryList 1 INVL-00011/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 0 0 2018-07-13 InventoryList 1 INVL-00010/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 0 0 2018-07-13 InventoryList 1 INVL-00009/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 -35000 0 2018-07-13 InventoryList 1 INVL-00008/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 -50000 0 2018-07-13 InventoryList 1 INVL-00007/2018 InventoryList InvL. Else
Test product pc EAN-PRD1 PROD-001 50000 49950 2018-07-18 Invoice 1 INV-00009/2018 Good partner Limited CityNameTest Inv. Sale
Test product pc EAN-PRD1 PROD-001 42000 41958 2018-08-17 Shipment 1 SHP-00002/2018 Good partner Limited CityNameTest Ship. Sale
Test product pc EAN-PRD1 PROD-001 42000 41958 2018-08-17 Shipment 1 SHP-00002/2018 Good partner Limited CityNameTest Ship. Sale
Test product pc EAN-PRD1 PROD-001 50000 49950 2018-09-04 Invoice 1 INV-00010/2018 Good partner Limited CityNameTest Inv. Sale
Test product pc EAN-PRD1 PROD-001 100000 99900 2018-09-05 Invoice 1 INV-00011/2018 Good partner Limited CityNameTest Inv. Sale
Test product pc EAN-PRD1 PROD-001 200000 199800 2018-09-27 FacilityForm 2 FAC-00002/2018 Company partner CityNameTest FacF. Else