2013-10-21 56 views
1

我有一個查詢正在我的水晶報表中使用。這部分:「AND(BIKEYC IN('GBC13','GBV13','GBV11','GBC11')」需要添加一個表在sql查詢中使用

現在已經改變了,他們會發布這些代碼到一個表格中。這些代碼稱爲globkeys,它包含2個列,第二個是鍵,它被稱爲'BFKEYC'。我需要在查詢中包含此表,以便選擇BIKEYC,而不是當它在組中的「IN」時但是當它在globkeys比賽

SELECT                  
    ALL  T01.BIENT#, T03.ADENTN, T03.ADFNM, T03.ADLNM, T01.BIKEYC,   
      T01.BISTPD, T02.OHORDD, T02.OHORD#, T02.OHORDT, T02.OHTTN$  
    FROM  ASTDTA.DRCST1 T01,            
      ASTDTA.OEORH1 T02,            
      ASTDTA.ADRES1 T03             
    WHERE  BIENT# = OHENT#             
    AND  BIENT# = ADENT#             
    AND( BIKEYC IN ('GBC13', 'GBV13', 'GBV11', 'GBC11')          
    AND  OHORDD > BISTPD             
    AND  OHORDT NOT IN ('QTE', 'CQO', 'COR', 'COE', 'SAM')     
    AND  ADSFX# = '000')             
    ORDER BY T01.BIKEYC ASC, T01.BIENT# ASC    
+0

是什麼globkeys表的第一列?它只是一個ID列?其公司代碼爲 –

+0

。我並不需要它,因爲我們只使用一家公司,但有一天會...但是如果它有幫助,我們可以刪除那一家。 – user2734217

回答

1

您可以使用INNER JOIN或在線查詢

方法1: 更換下面的語句

AND( BIKEYC IN ('GBC13', 'GBV13', 'GBV11', 'GBC11') 

AND( BIKEYC IN (SELECT BFKEYC FROM GlobKeys) 

方法2:

SELECT                  
    ALL  T01.BIENT#, T03.ADENTN, T03.ADFNM, T03.ADLNM, T01.BIKEYC,   
      T01.BISTPD, T02.OHORDD, T02.OHORD#, T02.OHORDT, T02.OHTTN$  
    FROM  ASTDTA.DRCST1 T01,            
      ASTDTA.OEORH1 T02,            
      ASTDTA.ADRES1 T03, 
      GlobKeys G            
    WHERE  BIENT# = OHENT#             
    AND  BIENT# = ADENT#             
    AND( BIKEYC = G.BFKEYC          
    AND  OHORDD > BISTPD             
    AND  OHORDT NOT IN ('QTE', 'CQO', 'COR', 'COE', 'SAM')     
    AND  ADSFX# = '000')             
    ORDER BY T01.BIKEYC ASC, T01.BIENT# ASC