首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要编写代码以根据先前的值跳过一行查询

需要编写代码以根据先前的值跳过一行查询
EN

Stack Overflow用户
提问于 2016-01-12 05:39:01
回答 1查看 42关注 0票数 1

在下面的代码中,当行是版税行,但没有LC时,我们会遇到一个问题,那么缺少LC将抹去此部分显示的金额:

代码语言:javascript
复制
CASE WHEN lctype='RO' THEN ROUND(SUM(totalland.olrqty),2) ELSE 0  
                  END NAME(roytotal) COLHDG("Royalties") LEN(11,2),

如果LCTYPE = "RO“,那么如果它= 'LC‘,那么不检查下一行,我该如何编码呢?因为这里发生的情况是,当LC时,此列to _ will和/olrqty)将被置零,但如果上一列是RO,我们不想置零。

代码语言:javascript
复制
SELECT   olsrom, olorno, olline, olprdc, oldesc,                             
            olrqty COLHDG("Qty Rec") LEN(11,0), WDATA(lctype),                
            SUM(olamou.olrqty) LEN(11,2) NAME(unit) COLHDG("Unit Price"),     
            CASE WHEN lctype='RO' THEN ROUND(SUM(totalland.olrqty),2) ELSE 0  
              END NAME(roytotal) COLHDG("Royalties") LEN(11,2),               
            CASE WHEN lctype='LC' THEN ROUND(SUM(totalland.olrqty),2) ELSE 0  
              END NAME(lctotal) COLHDG("Add-on Cost") LEN(11,2),              
            (roytotal+lctotal+unit) COLHDG("Landed Cost") NAME(totallc)       
              LEN(11,2)                                             
EN

回答 1

Stack Overflow用户

发布于 2016-01-12 06:54:34

您可以使用LAG函数检查前一行中的值。

编辑(如果ParFait正确):

只需添加...

代码语言:javascript
复制
OR lctype = 'RO'

...to下一行:

代码语言:javascript
复制
CASE WHEN lctype='LC' OR lctype = 'RO'
THEN ROUND(SUM(totalland.olrqty),2)
ELSE 0
END NAME(lctotal) COLHDG("Add-on Cost") LEN(11,2),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34731618

复制
相关文章

相似问题

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