CASE ...表达逻辑时

时间:2019-06-04 01:37:24

标签: sql oracle case-when

我正在尝试创建一个CASE...WHEN表达式,该表达式将告诉我在excel工作表上标记的日期是否有存货(如果计算在内)。 还有一个问题可能是,我们计算库存的那一天可能没有库存,但是我在Excel文件中用我在系统中运行该日期的日期进行了标记,以尝试计划要计算的sku。

我要添加到的查询如下:

select 
  dsp_sku, batch_nbr, 
  case
    when EXPTD_QTY <> ACTL_INVN_QTY then EXPTD_QTY-ACTL_INVN_QTY
    else null
  end as variance1, 
  decode (cc.stat_code, '0', 'Unprocessed', '90', 'Processed', '99', 'Expired') as Status, 
  dsp_locn, case_nbr, cc.user_id, cc.create_date_time, 
  case
    when trunc(cc.create_date_time) <= to_date('05/01/2019', 'mm/dd/yyyy') then 'Counted'
    else 'Not Counted'
  end as count?
from WH_GHC1.CYCLE_COUNT_HIST cc
  inner join item_master im on
    im.sku_id = cc.sku_id 
  inner join locn_hdr lh on
    lh.locn_id = cc.locn_id 
where
  cc.whse = 'PH3' 
--and cc.stat_code = 0
  --and dsp_sku = '&SKU'
  and cc.create_date_time > '&StartDate'
  and ( and ( 
------------------------------------------------------------------------------
  --------------------paste below-----------------------------------------------
  (im.dsp_sku ='170040') 
---------------------paste above----------------------------------------------
  ------------------------------------------------------------------------------
  --order by cc.create_date_time
  --stat_code: 0 is unprocessed, 90 is processed, 99 is expired,

我不太确定逻辑将是什么。我的猜测是

case when dsp_sku 'A' ACTL_QTY > 0 and (what ever the most recent cc.create_date_time is) Then counted else null end as whatever.

不确定该逻辑是否正确,但是问题是如果我去运行的那天没有存货,那么我将没有盘点日期,这意味着当它被盘点时将不被盘点只是没有系统的库存,所以无法计算。 我敢肯定,这很难理解,但是我尽了最大的努力,对此我表示感谢。

谢谢。

0 个答案:

没有答案