需要添加一个用于sql查询的表

需要添加一个用于sql查询的表,sql,sql-server,crystal-reports,db2-400,Sql,Sql Server,Crystal Reports,Db2 400,我的crystal报告中使用了一个查询。本部分:“和(在('GBC13'、'GBV13'、'GBV11'、'GBC11')中的BIKEYC” 现在已经更改,他们将把这些代码发布到一个表中。我创建了一个包含这些代码的视图,称为globkeys。它包含2个列,第二个列是键,称为“BFKEYC”。我需要将此表包含在查询中,以便选中BIKEYC,而不是在“in”时但当它在全局键中有匹配项时 SELECT

我的crystal报告中使用了一个查询。本部分:“和(在('GBC13'、'GBV13'、'GBV11'、'GBC11')中的BIKEYC”

现在已经更改,他们将把这些代码发布到一个表中。我创建了一个包含这些代码的视图,称为globkeys。它包含2个列,第二个列是键,称为“BFKEYC”。我需要将此表包含在查询中,以便选中BIKEYC,而不是在“in”时但当它在全局键中有匹配项时

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             

您可以使用内部联接或内联查询

方法1: 替换以下语句

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

方法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 

您可以使用内部联接或内联查询

方法1: 替换以下语句

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

方法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 

globkeys表的第一列是什么?它只是一个id列吗?它的公司代码。我实际上不需要它,因为我们只使用一家公司,但万一有一天…但如果它有帮助,我们可以删除它。globkeys表的第一列是什么?它只是一个id列吗?它的公司代码。我实际上不需要它,因为我们只使用一家公司,但以防万一总有一天…但如果有帮助的话,我们可以移除那个。