使用if-then选择SQL记录

使用if-then选择SQL记录,sql,Sql,我正在使用一个报告生成器(视点)。我已经生成了一个报告和相应的提示,让用户输入一个分支(&SLST00)和一个日期范围(&FRDAT和&TODAT) 下面是报表编写器生成的SQL。只要用户输入分支,它就可以正常工作 如果用户没有输入分行代码,我需要做什么更改,以便在日期范围内的所有分行订单数据都将包含在列表中 SELECT slst00.orderh COLHDG("Controlling" "Branch"), driv00.orderh, name10.dri

我正在使用一个报告生成器(视点)。我已经生成了一个报告和相应的提示,让用户输入一个分支(&SLST00)和一个日期范围(&FRDAT和&TODAT)

下面是报表编写器生成的SQL。只要用户输入分支,它就可以正常工作

如果用户没有输入分行代码,我需要做什么更改,以便在日期范围内的所有分行订单数据都将包含在列表中

SELECT slst00.orderh COLHDG("Controlling" "Branch"), 
       driv00.orderh, 
       name10.driver, 
       pro#00.orderh EDTCDE(Z), 
       sufx00.orderh EDTCDE(J), 
       osta00.orderh COLHDG("Order" "Status"), 
       tchg00.orderh EDTCDE(J), 
       dlcd00.orderh, 
       sfdt00.orderh COLHDG("Ship" "Date") EDTCDE(W), 
       trip00.orderh COLHDG("Trip #") EDTCDE(L)

FROM  tgilibdb/orderh,tgilibdb/driver
INNER JOIN driv00.orderh=driv10.driver
WHERE ORDERH.SLST00=&SLST00 
AND   ORDERH.STDT00 BETWEEN &FRDAT AND &TODAT
ORDER BY slst00 ASC,driv00 ASC

这可能取决于您的服务器,但我以前在SQL上使用过类似的方法。您必须根据默认分支值进行调整

SELECT slst00.orderh COLHDG("Controlling" "Branch"), 
       driv00.orderh, 
       name10.driver, 
       pro#00.orderh EDTCDE(Z), 
       sufx00.orderh EDTCDE(J), 
       osta00.orderh COLHDG("Order" "Status"), 
       tchg00.orderh EDTCDE(J), 
       dlcd00.orderh, 
       sfdt00.orderh COLHDG("Ship" "Date") EDTCDE(W), 
       trip00.orderh COLHDG("Trip #") EDTCDE(L)

FROM  tgilibdb/orderh,tgilibdb/driver
INNER JOIN driv00.orderh=driv10.driver
WHERE (&SLST00="" OR ORDERH.SLST00=&SLST00)
AND   ORDERH.STDT00 BETWEEN &FRDAT AND &TODAT
ORDER BY slst00 ASC,driv00 ASC

这段代码中的某些东西实际上代表了一个叫做“分支”的东西吗?@WayneC-这是某种IBM DB2或类似的东西吗?那些EDTCDE和COLHDG关键字并非标准SQL。有关此查询以及如何使用分支数据的详细信息-分支是否为占位符?-会有帮助的。