有一个表,我希望通过不同的条件 提取 同一编号的最后一个日期的数据
使用  select 编号,max(日期)
from 表
group by 编号不会产生问题, 但是有 where 子句时,随着where 子句条件的改变会产生同一编号的两条或者多条记录,     adszhChart.CommandText := 'select 幼儿编号,Max(F_Month),max(接诊日期)
                               from 表 where (F_Month >= :@sM) and 
                               (F_Month <= :@eM) and (x = 1) and (y = 0)
                               group by 幼儿编号 Order by 幼儿编号     adszhChart.CommandText := 'select 幼儿编号,Max(F_Month),max(接诊日期)
                               from 表 where (F_Month >= :@sM) and 
                               (F_Month <= :@eM) and (x = 0) and (y = 1)
                               group by 幼儿编号 Order by 幼儿编号在这两个执行后会产生几个重复的 幼儿编号 记录,从而导致错误,请帮助解决而如果我使用     adszhChart.CommandText := 'select 幼儿编号,x , y ,Max(F_Month),
                               max(接诊日期)
                               from 表 where (F_Month >= :@sM) and 
                               (F_Month <= :@eM) and (x = 0) and (y = 1)
                               group by 幼儿编号,x,y
                                Order by 幼儿编号在结果集可以看到确实存在几个 幼儿编号 重复的记录, 而实际上我需要的是每个
幼儿编号 只有一条记录谢谢

解决方案 »

  1.   

    adszhChart.CommandText := 'select  distinct 幼儿编号,x , y ,Max(F_Month),
                                   max(接诊日期)
                                   from 表 where (F_Month >= :@sM) and 
                                   (F_Month <= :@eM) and (x = 0) and (y = 1)
                                   group by 幼儿编号,x,y
                                    Order by 幼儿编号