【棘手问题】如何求如下情况的最小和最大日期????原软件数据信息显示——实际最大小日期记录,如下图:
编号0380单位的最小日期应为200909月,最大日期为200910月;
为什么编号0380单位两行的最小日期和最大日期一样而且分别为200712和200910月,出现的结果和如上显示的实际最大小日期记录不符合呢???
请教各位高手,如何改写这两句求最大小日期的SQL语句,让其显示为实际实际最大小日期记录(编号0380单位的最小日期应为200909月,最大日期为200910月)?????积极急急……

解决方案 »

  1.   

    你这个aae002不是你第一张图里的费款所属期吧
      

  2.   

    可能不才表述不清把,
    现附上AB08表结构,如下图:
    最终要达到的结果集,如下图所示:
    部分sql代码如下所示:SELECT a.aab001 AS 单位编号
          ,b.aab004 AS 单位名称
          ,b.aab023 AS 主管部门
          ,(select MIN(c.aae002) from ab08 c where a.aab001 = c.aab001 )) AS 开始日期
          ,(select MAX(c.aae002) from ab08 c where a.aab001 = c.aab001 ) AS 终止日期
    --养老保险欠缴信息
     , (select sum(aab083)-SUM(aab383) from AB08 where aab001 = a.aab001 and aae002=a.aae002  and aae140 = '1') as 养老在职职工人数
     , (select sum(aab082)-SUM(aab382) from AB08 where aab001 = a.aab001 and aae002=a.aae002  and aae140 = '1'  ) as 养老欠缴离退休人数
     , (select sum(aab120) from AB08 where aab001 = a.aab001 and aae002=a.aae002  and aae140 = '1') as 养老个人缴费基数总额
     , (select sum(aab121) from AB08 where aab001 = a.aab001  and aae002=a.aae002 and aae140 = '1') as 养老单位缴费基数总额
     , (select (SUM(aab150)-sum(aab153)) from AB08 where aab001 = a.aab001 AND aae002=a.aae002  and aae140 = '1' ) as 养老个人缴纳额
     , (select (SUM(aab151)+sum(aab152))-(SUM(aab154)+sum(aab155)) from AB08 where aab001 = a.aab001 AND aae002=a.aae002  and aae140 = '1') as 养老单位缴纳额
     , (select sum(aab204)-SUM(aab162) from AB08 where aab001 = a.aab001  AND aae002=a.aae002 and aae140 = '1' ) as 养老滞纳金
     , (select sum(aab203)-sum(aab167) from AB08 where aab001 = a.aab001 AND aae002=a.aae002  and aae140 = '1' ) as 养老利息
     , (select sum(aab156)-SUM(aab153)-SUM(aab154)-SUM(aab155)-SUM(ckb027)-SUM(zab006) from AB08 where aab001 = a.aab001 AND aae002=a.aae002  and aae140 = '1'  ) as 养老金额小计…………
    …………
    …………

    如何改写这两句求最大小日期的SQL语句,让其显示为实际实际最大小日期记录(编号0380单位的最小日期应为200909月,最大日期为200910月)????? 急急……
      

  3.   


    最终要达到的结果集(excel效果),如下图所示:
      

  4.   

         ,(select MIN(c.aae002) from ab08 c where a.aab001 = c.aab001 )) AS 开始日期 
          ,(select MAX(c.aae002) from ab08 c where a.aab001 = c.aab001 ) AS 终止日期