需要使用1个sql来完成这3个步骤

时间:2014-03-31 13:43:02

标签: sql

我必须报告具体记录。我们的订单有很多细节,有时甚至数百。我们记录订单发生的所有事情。我们正在寻找一份报告,显示哪些订单最初是报价 - 该订单会有QEE或QNE或QEP的交易代码。然后,如果订单也有@ 23,这告诉我们它“转换”为订单。

  1. 在这里,我们选择所有具有“Q”之一的订单#作为交易代码(ottrnc)。

    create view mylib.quote1 as SELECT t1.otord#                    
             FROM astdta.OETRANOT t1                        
             WHERE t1.ottrnc IN ('QEE','QNE', 'QEP')       
    
  2. 这里我们使用视图QUOTE1,它会创建第二个视图QUOTE2。

    SELECT                                               
      ALL       T01.OTORD#                               
      FROM      mylib/QUOTE1 T01 LEFT OUTER JOIN         
                ASTCCDTA/OETRA99 T02                     
      ON        T01.OTORD# = T02.OTORD#                  
      WHERE     T02.OTTRNC = '@23'                      
    
  3. 然后在报告工具中我们将QUOTE2加入到ASTCCDTA / OETRA99,以便我们显示那些有Q的1和@ 23的订单#的所有数据。

1 个答案:

答案 0 :(得分:0)

不确定ASTCCDTA / OETRA99上的订单栏是什么,但你想要这样的东西:

SELECT DISTINCT t1.otord#
FROM astdta.OETRANOT T01
LEFT OUTER JOIN 
ASTCCDTA/OETRA99 T02
ON T01.OTORD# = T02.OTORD#
JOIN ASTCCDTA/OETRA99 T03
ON T03.otord3 = T01.otord#
WHERE T02.OTTRNC = '@23'
AND T01.ottrnc IN ('QEE','QNE', 'QEP')

OR

SELECT t1.otord#
FROM astdta.OETRANOT T01
LEFT OUTER JOIN 
ASTCCDTA/OETRA99 T02
ON T01.OTORD# = T02.OTORD#
JOIN ASTCCDTA/OETRA99 T03
ON T03.otord3 = T01.otord#
WHERE T02.OTTRNC = '@23'
AND T01.ottrnc IN ('QEE','QNE', 'QEP')
GROUP BY t1.otord#