还有一个补充:
求得TAB1的 DAND 和 JIZHONG 的时候,如果得到了2个以上的记录,就要TAB1的
QI_DATE最大的那条记录.

解决方案 »

  1.   

    select QI_DATE,BUMEN,TUFAN,GC,
    (select DAND from tab2 where TAB1.BUMEN=TAB2.BUMEN and TAB1.TUFAN = TAB2.TUFAN and TAB1.GC=TAB2.GC),
    (select JIZHONG from tab2 where TAB1.BUMEN=TAB2.BUMEN and TAB1.TUFAN = TAB2.TUFAN and TAB1.GC=TAB2.GC),YE_CD,
    (select YE_NAME from tab2 where TAB1.YE_CD=TAB2.YE_CD)
    from tab1
      

  2.   

    beckhambobo(beckham) :
    执行子查询的时候,会提示错误:有多条数据被返回
      

  3.   

    beckhambobo(beckham) :因为比较复杂,数据也很多,我也解释不清楚了,我已经晕掉了.不过关于你的语句,问题是,那三个子查询,查询结果必须是一条记录,可是你的查询结果会出现多条记录.前两个查询还有一个条件,在查出的多条记录中只要QI_DATE最大的那条记录,可是我不知道怎么写这个条件.至于第三个查询,我想加一个DISTINCT应该可以解决问题吧.
      

  4.   

    前两个查询还有一个条件,在查出的多条记录中只要QI_DATE最大的那条记录
    -----------------------------------------------------------------
    加个MAX()函数就OK了!
    select DAND,max(QI_DATE) from tab2 where TAB1.BUMEN=TAB2.BUMEN and TAB1.TUFAN = TAB2.TUFAN and TAB1.GC=TAB2.GC group by dand
      

  5.   

    dihai2000(haifeng):
    按照你的写了,还是说取出了多条数据,我只好把一部分数据贴出来,大家看看.谢谢大家的帮忙!!
    TAB1;
       QI_DATE BUMEN TUFAN           GC DAN JIZHO YE_CD YE_NAME     
    ---------- ----- --------------- -- --- ----- ----- ------------
      20010912 52    10526021        93 510 SDV   12845 AAAック    
      20010912 52    10526021        93 510 SDV   12845 AAAック    
      20010912 52    10526021        93 510 SDV   12845 AAAルテック    
      20010912 52    10526021        93 510 SDV   12845 AAAルテック    
      20010912 52    10526021        93 510 SDV   12845 AAAアルテック    
      20010912 52    11326280        91 510 SDV   25942 BBBヨウケイゴウ  
      20010912 52    11326280        91 510 SDV   25942 BBBヨウケイゴウ  
      20010912 52    11326280        91 510 SDV   25942 BBBヨウケイゴウ  
      20010912 52    11326280        91 510 SDV   25942 BBBヨウケイゴウ  
      20010912 52    11326280        91 510 SDV   25942 BBBヨウケイゴウ  
      20010912 52    11336280        91 510 SDV   12971 CCCテック      
    TAB2:
     BU TUFAN           GC YE_CD
     -- --------------- -- -----
     52 10526021        93 29883
     52 10526021        93 29883
     52 10526021        93 29883
     52 10526021        93 29883
     52 10526021        93 29883
     52 11326280        91 25942
     52 11326280        91 25942
     52 11326280        91 25942
     52 11326280        91 25942
     52 11326280        91 25942
     52 11336280        91 12971
      

  6.   

    上面的数据没贴好,再贴一个. 
    TAB1;  
         QI_DATE  BUMEN  TUFAN           GC     DAND   JIZHONG  YE_CD  YE_NAME 
       --------  -----  ---------------  -----  -----  -------  -----  ---
       20010912  52        10526021      93     510    SDV      12845  AAA
       20010912  52        10526021      93     510    SDV      12845  AAA
       20010912  52        10526021      93     510    SDV      12845  AAA
       20010912  52        10526021      93     510    SDV      12845  AAA
       20010912  52        10526021      93     510    SDV      12845  AAA
       20010912  52        11326280      91     510    SDV      25942  BBB
       20010912  52        11326280      91     510    SDV      25942  BBB
       20010912  52        11326280      91     510    SDV      25942  BBB
       20010912  52        11326280      91     510    SDV      25942  BBB
       20010912  52        11326280      91     510    SDV      25942  BBB
       20010912  52        11336280      91     510    SDV      12971  CCC
    TAB2:  
     BUMEN  TUFAN            GC  YE_CD  
     --     ---------------  --  -----  
     52     10526021         93  29883  
     52   10526021         93  29883  
     52   10526021         93  29883  
     52   10526021         93  29883  
     52   10526021         93  29883  
     52   11326280         91  25942  
     52   11326280         91  25942  
     52   11326280         91  25942  
     52   11326280         91  25942  
     52   11326280         91  25942  
     52   11336280         91  12971
      

  7.   

    补充:
    我需要的数据最后记录数要跟TAB2表的一样,不多也不少,也就是说最后结果,TAB2表中的数据都要在.
      

  8.   

    select t1.bumen,t1.tufan,t1.gc,t1.ye_cd,t2.ye_name,t3.dand,t3.jizhongfrom    tab1 t1 , 
           (select distinct ye_cd,ye_name from tab2) t2,
           (select distinct bumen,tufan,gc, dand ,jizhong from tab2 ) t3where t1.ye_cd =t2.ye_cd 
          and T1.BUMEN=T3.BUMEN and 
          T1.TUFAN = T3.TUFAN and 
          T1.GC=T3.GC
    试试看, 应该可以吧。