我用sql语句
SELECT FM_Module.MName, FM_Module.MID, FM_OV_M.OVID
FROM FM_Module INNER JOIN
      FM_OV_M ON FM_Module.MID = FM_OV_M.MID
WHERE (FM_OV_M.OVID IN
          (SELECT OVID
         FROM FM_SV_OV
         WHERE SVID = 13))
查出如下的表
MName           MID     OVID
-----------------------------------------
         a         138 44
b         129 47
b         129 48
c         132 49
c         132 42
d         131 42
我想得到的结果是:
MName           MID     OVID
-----------------------------------------
         a         138 44
b         129 48
c         132 49
d         131 42
那上面的sql语句要怎么改 谢谢 帮帮忙

解决方案 »

  1.   

    按你给的示例数据,可以写成这样SELECT FM_Module.MName, FM_Module.MID, max(FM_OV_M.OVID) asOVID
    FROM FM_Module INNER JOIN
          FM_OV_M ON FM_Module.MID = FM_OV_M.MID
    WHERE (FM_OV_M.OVID IN
              (SELECT OVID
             FROM FM_SV_OV
             WHERE SVID = 13))
    Group by FM_Module.MName, FM_Module.MID但是我觉得你数据库本身的数据有问题
      

  2.   

    用上別名,可以讓語句看的簡短些SELECT A.MName, A.MID, Max(B.OVID) As OVID
    FROM FM_Module A INNER JOIN
          FM_OV_M B ON A.MID = B.MID
    WHERE (B.OVID IN (SELECT OVID FROM FM_SV_OV WHERE SVID = 13))
    Group By A.MName, A.MID
      

  3.   

    SELECT A.MName, A.MID, Max(B.OVID) As OVID
    FROM FM_Module A INNER JOIN
          FM_OV_M B ON A.MID = B.MID
    WHERE (B.OVID IN (SELECT max(OVID) FROM FM_SV_OV WHERE SVID = 13))
    Group By A.MName, A.MID
      

  4.   

    scmail81(琳·风の狼(修罗))  ?????
      

  5.   

    SELECT FM_Module.MName, FM_Module.MID, FM_OV_M.OVID
    FROM FM_Module INNER JOIN
          FM_OV_M ON FM_Module.MID = FM_OV_M.MID
    WHERE (FM_OV_M.OVID IN
              (SELECT max(OVID)
             FROM FM_SV_OV
             WHERE SVID = 13))