表结构如下                                          要求:
A          B         C         D         E          以B字段为准,分为3部
==============================================      分。
我         1         5         0.5       1001       现在要将3部分中都有的
我         1         6         0.6       1001       记录排除不做比较,在
----------------------------------------------      剩下的记录中找出三个
我         2         5         0.1       1002       C最小的记录。具体,
我         2         3         0.3       1002       三组中都有C5-D0.5的字
我         2         5         0.1       1002       段,这三条记录不参与
----------------------------------------------      比较。找出三条C最小
我         3         5         0.5       1003       记录B1-C6,B2-C3,B3-
我         3         7         0.7       1003       C4。
我         3         4         0.4       1003       最后,再从上面三条记
我         3         6         0.6       1003       录里挑出C最大的一条
                                                    B1-C6即可。求助于各位高手!!小弟是新手小白还有update A,B set A.X=B.X where A.ID=B.ID
这句话有错吗?在Access里似乎可以用的
ORACLE里却不正确

解决方案 »

  1.   

    前1个问题sql即使写出来也很长update A,B set A.X=B.X where A.ID=B.ID
    错的
    要这样写
    update A set A.X=(select B.X from B where A.ID=B.ID)
      

  2.   

    楼上的没问题
    update A set A.X=(select B.X from B where A.ID=B.ID)
      

  3.   

    最新CAX/EDA/CFD/GIS/光学/化工/液压软件资源网 阳光软件园 所有软件资料都随时更新,急需软件可以去看看,基本上能找到你想要的! http://zhangqg.51.nethttp://zhangqg.512j.comhttp://even2one.3322.orghttp://zhangqg.chinese.cn.com将以上任意链接连接起来输入IE 窗口即可进入网站 下面是一部分软件,更多软件在我们的软件列表,如需要请到列表中去找!
    PTC Pro/E WildFire+Pro/Mechancia 3.0 M050 for WinALL-ISO 3CD
    PTC Pro/E WildFire+Pro/Mechancia 2.0 M200 for NT_2000_XP-ISO 3CD
    PTC Pro/Intralink v3.4 M020 SERVICE PACK-ISO 1CD
    PTC.EMX.v5.0.M010-ISO 2CD
    PTC EFX 3.0 2003130-ISO 1CD 
    PTC Progressive Die eXtension (PDX) 2.2 M190-ISO 1CD
    PTC ICEM Surf v4.5-ISO 2CD
    PTC.Progressive.Die.v2.2-ISO 1CD
    PTC 3DPaint 2001 1CD
    PTC Connector Library for WildFire-ISO 1CD
    PTC.Mathcad.v14.0-ISO 1CD
    PTC Routed Systems Designer v6.0 M040-ISO 
    UG.NX.v4.0 final-ISO 2CD
    EDS.Factory.v7.1 Multilanguage-ISO 
    MoldWizard for UG NX v3.0 1CD
    UG.ProductVision.v3.0-ISO 1CD
    UG Postbuilder v3.1 1CD
    Tecnomatix.FactoryLink.v7.5 1CD(生产自动化软件)
    Teamcenter Engineering iMAN v9.0-ISO 1CD(多语言版,含简体中文)
    I-Deas.NX v12.0 M3-ISO 1DVD
    Imageware Surfacer v11.0 1CD
    FEMAP.v9.2-ISO
    Polyworks v9.0 1CD
    CADTooLs v6.0 for Solidedge-ISO 1CD
    CamTraxMFG v2005.0.374 1CD 1CD
    GearTraxSE v2005.170.487 for SolidEdge 1CD
    Catia P3 v5R17 GA-ISO 2CD
    Cenit.FasTRIM.LaserCUT.v3R6.WiNNT2K 1CD
    Smarteam.PDM.v4.0.SP5.5-ISO 3CD
    Cimatron E 7.2-ISO 3CD
    Cimatron QuickNC v4.1-ISO 
    Solidworks v2007 SP0.0.Office.Premium.Final-ISO 6CD
    ToolBox for SolidWorks v2006 1CD
    COSMOS/DesignSTAR.v4.5 1CD
    IPA V8.0 for SolidWorks 1CD
    GearTrax 2007 for SolidWorks 2007
    iMOLD v2005 SP0-ISO 1CD
    ShapeWorks v2.24 1CD
    天喻 InteCAPP (040320) 1CD
    开目CAD2006 1CD
    Inventor.Professional.v11-ISO 7CD
    AutoCAD.2008-ISO 2CD
    Prosteel 3D v17.1 for AutoCAD 1CD
    Sycode Mesh To Solid v3.0 1CD
    T-Flex CAD v9 Build 9010 1CD
    Space-E v4.2  1CD
    IronCAD.Inovate.v9.0.WinALL
    TopSolid.2006.v6.7.250-ISO 1DVD
    PC-DMIS.v3.5-ISO 1CD
    ArtiosCAD.v6.02-ISO 1CD
    CAXA 工艺图表2007R1-ISO 1CD
    PowerCAD.Pro.v6 1CD
    清华天河THPCCAD2006完整企业版-ISO 1CD
    Impactxoft.IX.Design.Plus.v2.14.0.15 1CD
    Think3.ThinkDesign.ThinkID.v2006.1-ISO 
    KISSsoft Hirnware v10.2004-ISO 1CD
    DesignCAD 3D Max v17-ISO 
    BobCAD-CAM v21.52 1CD
    Amazing.Designs.Click.N.Stitch.Xtra.v3.3.18.0 1CD
    Lectra.Alys.Pilot.v2.r1.c1 1CD
    Tajima.DGML.XI-ISO 1CD
    MasterCAM.X2.v11.0.Full-ISO 1CD
    MoldPlus Metric v9 for MasterCAM v9 1CD
    SprutCAM v4.0 1CD
    CAMUtilities.v6.SP3 1CD
    ShoeCAM v4.2 1CD
    ArtCAM.Pro.and.Jewelsmith.v8.1-ISO 1CD
    FeatureCAM.2006.v13.1.0.28 1CD
    CopyCAD v6.004 1CD
    PowerSHAPE-e v7.0.80 SP4 1CD
    Fenix.v4.1-ISO 1CD
    Cam-tool v2.0.3.8
    TRUMPF ToPs 600 v3.0-ISO  1CD
    SolidCAM v2006 正式版 1CD
    SurfCAM Velocity II SP2-ISO 1CD
    WorkNC v17.03-ISO 1CD
    Euklid.v2004.3.Multilingual  1CD
    NCSS v9.2-ISO  1CD
    DepoCAM v6.0.9-ISO 1CD
    Type3 Type Edit 2003 v5.3.0.0-ISO  1CD 
    Skymatter Mudbox v1.0.4 Final 1CD
    Cadlink.Engravelab.v6.1.Rev9-ISO 1CD
    Flexisign.Pro.7.6.v2-ISO 2CD
    VERO Visi-Series v14.SP1 Multilanguage-ISO 
    AlphaCAM v2004 v5.0-ISO 1CD
    VX.CAD.CAM.v12.70-ISO 1CD
    OneCNC.One2000. Mill 3D v4.22 1CD
    Cadem.SeeNC.Mill.v6.1.WiNNT2K 1CD
    Band5 wedm 线切割编程系统 2.10
    SmartCAM R11-ISO 1CD
    FlexiSIGN Pro v7.5V5 1CD
    Graphitech Cimagraphi v8.07 1CD
    Atd Edit v1.1.34 1CD
    Cam Analyzer v3.2.B.011 1CD
    Cgtech Vericut v6.0.3 1CD
    JvMsd 2.0 1CD
    NCSimul.v8.3.WiN32 1CD
    CIMCO.DNCMax.v4.40.09 1CD
    Tebis.CAD.CAM.v3.1.R12.Multilingual-ISO 1CD
    Formtec.NCspeed.v5.1.0.4 1CD
    ProCAST 2005.0-ISO 1CD
    ESI PAM CRASH 2G 2005-ISO 1CD
    ESI PAM STAMP 2G v2004.0-ISO 1CD
    CFDRC v2004-ISO 1CD
    AutoSEA2 2004.v2.5.0.8-ISO 1CD
    华铸CAE/InteCAST 铸钢分析系统 R8.0
    Deform.2D.v8.1-ISO 1CD 
    HyperWorks v7.0 1CD
    Lotus.Base.Engine.Analysis.Tools.v4.02c 1CD
    TNO.Automotive.ADVISER.v1.4.2 1CD
    Accelrys.Materials.Studio.v4.0 1CD
    iFIX v4.0 CHS-ISO 1CD
    DHI.MIKE.ZERO.v2005-ISO 1DVD
    GT SUITE v6.1 for winALL 1CD
    Ricardo Software Wave v5.1-ISO 1CD
    AVL.Fire.v8.31-ISO  1CD
    Dyno.DataMite.Analyzer.v2.0.A042
    NUMECA Fine Turbo Design 3D v6.13 1CD
    Desktop Dyno 2000 v3.08 + 3.10 update 1CD
    LensVIEW 2001-ISO 1CD
    CODE V 9.50 1CD
    ASAP v8.0-ISO 1CD
    ReflectorCAD 1.5 1CD
    OptiFDTD v4.0  1CD
    OptiBPM.v6.0 1CD
    OptiSystem v3.0 1CD
    TracePro v3.37F
    BeamPROP.v5.1.9 vs FullWwave v3.0.9 1CD
    LightTools.v5.1.incl.SP1-ISO 1CD
    LucidShape.v1.2 for WinAll 1CD
    OSLO.Premium.v6.34 1CD
    TFCalc.v3.5.6
    Intergraph SmartPlant 3D v03.00.15.00-ISO 4CD
    Intergraph Plant Design System(PDS)v07.00.00.15-ISO 1CD
    Vantage.Plant.Design.Management.System.v11.6-ISO 
    Technomatix.eM-Workplace.v7.1.2-ISO 2CD
    gPROMS.ModelBuilder.v2.3.4 1CD
    HTFS.Software.v2006-ISO 1DVD
    HyproTech.HYSYS.2004 1CD
    HTRI Exchanger Suite v4.0-ISO 1CD
    CAESAR II 4.50-ISO 1CD
    Pvelite 2005 Full 1CD
    Coade CADWorkx DataSheets Build Feb 2006 1CD
    Coade CADWorx Plant Professional v2006 1CD
    SIMSCI PRO/II v8.0 1CD
    ChemOffice.Ultra.2006.v10 1CD
    Applied Flow Technology Arrow v3.0.2005.02.09 1CD
    FEFLOW v5.0 1CD
    EMS-I GMS v6.0 221105 1CD
    AMESim.v4.2.0-ISO 1CD
    压力容器计算软件SW6-1998 v3.5  1CD
    Maxsurf v11-ISO 1CD
    ShipConstructor 2006 v1.00 1CD
    Sculptor v1.7.5 1CD
    EasyNN-plus.v7.0e.WinALL 1CD
    Dyadem PHA-Pro v6.0.0.23 1CD
    Tripos Sybyl v7.2-ISO 4CD+1DVD
      

  4.   

    SELECT *
    FROM (SELECT *
           FROM (SELECT *, row_number() over(PARTITION BY b ORDER BY c) AS rn
                  FROM table1
                  WHERE (c, d) IN (SELECT c, d
                                   FROM table1
                                   GROUP BY c, d
                                   HAVING COUNT(DISTINCT b) < 3))
           WHERE rn = 1
           ORDER BY c DESC)
    WHERE rownum <= 1
      

  5.   

    SELECT *
    FROM (SELECT *
           FROM (SELECT *, row_number() over(PARTITION BY b ORDER BY c) AS rn
                  FROM table1
                  WHERE (c, d) IN (SELECT c, d
                                   FROM table1
                                   GROUP BY c, d
                                   HAVING COUNT(DISTINCT b) < 3))
           WHERE rn = 1
           ORDER BY c DESC)
    WHERE rownum <= 1---获得不是在3组中都有的数据,进行查询
    SELECT c, d
                                   FROM table1
                                   GROUP BY c, d
                                   HAVING COUNT(DISTINCT b) < 3
    --进行排序将根据table表b字段进行分组,c字段进行排序 rn=1代表取得c字段最少的
    SELECT *
           FROM (SELECT *, row_number() over(PARTITION BY b ORDER BY c) AS rn
                  FROM table1
                  WHERE (c, d) IN (..)
           WHERE rn = 1
           ORDER BY c DESC
    --其实根据你的需求,在这点就可以直接求出了
    SELECT *
           FROM (SELECT *, row_number() over(PARTITION BY a ORDER BY c) AS rn
                  FROM table1
                  WHERE (c, d) IN (..)
           WHERE rn = 1
           ORDER BY c DESC
    将PARTITION BY b 改为PARTITION BY a就求出来了