在数据集中使用如下的代码:
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进行过来,但是在数据集中貌似不可以。 |