起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 103|回复: 3

【结贴】如何在重复数据中取出其中的一条??**

[复制链接]
发表于 2009-4-24 15:11:38 | 显示全部楼层 |阅读模式
在数据集中使用如下的代码:
SELECT GDHR_JBXXSJB.GUID, GDHR_JBXXSJB.DW, GDHR_JBXXSJB.RYBH, GDHR_JBXXSJB.ZDH, GDHR_JBXXSJB.SFZH, GDHR_JBXXSJB.XM, GDHR_JBXXSJB.BM, GDHR_JBXXSJB.XB, GDHR_JBXXSJB.MZ, GDHR_JBXXSJB.CSRQ, GDHR_JBXXSJB.JG, GDHR_JBXXSJB.CSD, GDHR_JBXXSJB.HKSZD, GDHR_JBXXSJB.CJGZSJ, GDHR_JBXXSJB.JRXTSJ, GDHR_JBXXSJB.LBDWSJ, GDHR_JBXXSJB.ZZMM, GDHR_JBXXSJB.JRSJ, GDHR_JBXXSJB.XGW, GDHR_JBXXSJB.GWLB, GDHR_JBXXSJB.GJ, GDHR_JBXXSJB.RYZT, GDHR_JBXXSJB.LZ_DC_TXSJ, GDHR_JBXXSJB.BZ, GDHR_JBXXSJB.BMFZR, GDHR_JBXXSJB.SF, GDHR_JBXXSJB.DDFX, GDHR_JBXXSJB.age, GDHR_JBXXSJB.GZXZ, GDHR_JBXXSJB.DRLY, GDHR_JBXXSJB.FZJR, GDHR_JBXXSJB.FZSJ, GDHR_JBXXSJB.QXDW, GDHR_JBXXSJB.QXDWBH, GDRL_YXRCSJB.ZJLX, GDRL_YXRCSJB.ZJCH, GDRL_YXRCSJB.CHHDND, GDRL_CGLWSJB.HDJXMC, GDRL_CGCJSJB.CGRQ, GDRL_CGCJSJB.PWGJ, GDRL_CGCJSJB.PCRW, GDRL_XLJNSJB.XW, GDRL_XLJNSJB.XL, GDRLZCSJB.ZCDJ, GDRLZCSJB.ZSMC, GDRLZCSJB.JNDJ, GDRLZCSJB.ZGLX, GDRLZCSJB.ZGZSDJ, GDRLZCSJB.ZYJSZW, GDRL_XLJNSJB.ZYLB, GDRL_XLJNSJB.XWZY, GDHR_JBXXSJB.ZJYLX, GDRL_CGCJSJB.FHRQ, GDRLZCSJB.SYRQ
  FROM GDHR_JBXXSJB left JOIN GDRL_YXRCSJB on GDHR_JBXXSJB.guid = GDRL_YXRCSJB.glguid left JOIN GDRL_CGLWSJB on GDHR_JBXXSJB.guid = GDRL_CGLWSJB.glguid left JOIN GDRL_CGCJSJB on GDHR_JBXXSJB.guid = GDRL_CGCJSJB.glguid left JOIN GDRL_XLJNSJB on GDHR_JBXXSJB.guid = GDRL_XLJNSJB.glguid left JOIN GDRLZCSJB on GDHR_JBXXSJB.guid = GDRLZCSJB.glguid
  WHERE ((xl = (select max(xl) from GDRL_XLJNSJB a where (a.glguid = GDRL_XLJNSJB.GLGUID)) or ((select max(xl) from GDRL_XLJNSJB a where (a.glguid = GDRL_XLJNSJB.GLGUID)) is null))) and ((CGRQ = (select max(CGRQ) from GDRL_CGCJSJB b where (b.GLGUID = GDRL_CGCJSJB.GLGUID)) or ((select max(CGRQ) from GDRL_CGCJSJB b where (b.GLGUID = GDRL_CGCJSJB.GLGUID)) is null))) and ((CHHDND = (select max(CHHDND) from GDRL_YXRCSJB c where (c.glguid = GDRL_YXRCSJB.GLGUID)) or ((select max(CHHDND) from GDRL_YXRCSJB c where (c.glguid = GDRL_YXRCSJB.GLGUID)) is null))) and ((SYRQ = (select max(SYRQ) from GDRLZCSJB d where (d.glguid = GDRLZCSJB.GLGUID)) or ((select max(SYRQ) from GDRLZCSJB d where (d.glguid = GDRLZCSJB.GLGUID)) is null))) and ((WCSJ = (select max(WCSJ) from GDRL_CGLWSJB e where (e.glguid = GDRL_CGLWSJB.GLGUID)) or ((select max(WCSJ) from GDRL_CGLWSJB e where (e.glguid = GDRL_CGLWSJB.GLGUID)) is null)))


就是从多个表中取出数据,为了防止出现重复数据,使用max进行比较,去表中max(字段)最大的出来。但是现在发现一个问题,就是一个表中,符合条件的max有多个,就会出现重复数据。有没有什么好办法来解决这个问题???我考虑用top1来对max进行过来,但是在数据集中貌似不可以。
回复

使用道具 举报

发表于 2009-4-24 15:14:58 | 显示全部楼层
那用tquery或者视图
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-24 16:04:26 | 显示全部楼层
我用的ROWNUM = 1是可以的。呵呵。结贴吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-24 16:39:12 | 显示全部楼层
结贴吧。。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 06:45 , Processed in 0.038423 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表