首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Case的情况

Case的情况
EN

Stack Overflow用户
提问于 2014-01-19 00:40:13
回答 1查看 46关注 0票数 0

我有工厂,材料,移动类型和日期。

我的要求是我想要物料和工厂组合中的最大日期,具有移动类型条件

首先我需要物料和工厂组合中的最大日期,其中移动类型为602,如果602为null,则为601,如果601为null,则为102,如果102为null,则为101,如果101也为null,则为其它移动类型。

为此,我在IDT的派生表中使用了以下代码,但我无法获得正确的结果:

代码语言:javascript
运行
复制
SELECT
DISTINCT
  Table__1."0PLANT",
  Table__1."0MATERIAL",
  Max(Table__1."0PSTNG_DATE") as Last_Sales_Date
FROM
  "NM1"."PUBLIC"."IZDSO_DMR"  Table__1
  Where
      CASE 
        WHEN (Table__1."0MOVETYPE"=602) THEN (Table__1."0MOVETYPE"=602)
        WHEN (Table__1."0MOVETYPE"=602) IS NULL THEN (Table__1."0MOVETYPE"=601)
        ELSE
         (Table__1."0MOVETYPE"=601) END
   Group By
     Table__1."0MATERIAL",
     Table__1."0PLANT"

我只尝试了602,601个移动类型

请帮助我得到正确的结果

EN

回答 1

Stack Overflow用户

发布于 2014-01-19 02:47:16

这是您的where子句:

代码语言:javascript
运行
复制
Where (CASE WHEN (Table__1."0MOVETYPE"=602) THEN (Table__1."0MOVETYPE"=602)
            WHEN (Table__1."0MOVETYPE"=602) IS NULL THEN (Table__1."0MOVETYPE"=601)
            ELSE (Table__1."0MOVETYPE"=601)
      END)

这实际上适用于某些SQL引擎,因为比较被转换为数字。然而,我不认为这是你想要的。您希望根据0MoveType列确定max()值的优先级。

代码语言:javascript
运行
复制
SELECT "0PLANT", "0MATERIAL",
       (case when sum(case when "0MOVETYPE" = 602 then 1 else 0 end) > 0
             then max(case when "0MOVETYPE" = 602 then "0PSTNG_DATE" end)
             when sum(case when "0MOVETYPE" = 601 then 1 else 0 end) > 0
             then max(case when "0MOVETYPE" = 601 then "0PSTNG_DATE" end)
             when sum(case when "0MOVETYPE" = 102 then 1 else 0 end) > 0
             then max(case when "0MOVETYPE" = 102 then "0PSTNG_DATE" end)
             when sum(case when "0MOVETYPE" = 101 then 1 else 0 end) > 0
             then max(case when "0MOVETYPE" = 101 then "0PSTNG_DATE" end)
        end) as Last_Sales_Date
\FROM "NM1"."PUBLIC"."IZDSO_DMR"  Table__1
Group By "0MATERIAL", "0PLANT";

这将返回"602“的最后销售日期。如果不存在,则返回最后的销售日期"601“。如果"601“和"602”都不存在,则转到"102“,依此类推。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21206857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档