Office中国论坛/Access中国论坛

标题: 请教如何实现社会保险费下年应征数查询? [打印本页]

作者: 乐以忘忧    时间: 2012-2-16 22:30
标题: 请教如何实现社会保险费下年应征数查询?
请教高手:此数据库为本人设计的新农保和城居保的数据库的一部分
一对多的两个表(相当于一个台账一个流水账),建立查询,如何按缴费时间只显示最近的一条记录?(以便作为下年应征的数据)。
    我用以下语句查询出来有重复(不应有重复)
SELECT a.*
FROM 05个人明细 AS a
WHERE exists(select 1 from 05个人明细 where 公民身份证=a.公民身份证
and a.缴费类型 = '正常应缴'  
and 时间<a.时间);

    新农保及城居保为没有条件参加城镇职工社保的广大人群服务,希望各位高手多多帮忙!
[attach]48364[/attach]


作者: 风中漫步    时间: 2012-2-17 14:06
俺是真想给差别群体帮点忙,凭啥一样干活,就只能农保居报呢?可俺水平真有限,你看这样行不

[attach]48365[/attach]
作者: JosephTan    时间: 2012-2-17 17:42
不重复是不是要用disdinct?
作者: ywfqd    时间: 2014-2-14 12:24
SELECT c.*
FROM 04基本情况 AS a left join [05个人明细] as c on a.公民身份证=c.公民身份证 where c.时间=(select top 1 b.时间  from [05个人明细] as b  where b.公民身份证=a.公民身份证 and b.缴费类型 = '正常应缴' order by  b.时间 desc)

作者: ywfqd    时间: 2014-2-14 13:04
SELECT a.*
FROM 05个人明细 AS a
WHERE (((Exists (select b.公民身份证 from [05个人明细] as b where( b.公民身份证=a.公民身份证 and a.缴费类型 = '正常应缴' and b.缴费类型 = '正常应缴' and b.时间>a.时间)))=False) and a.缴费类型 = '正常应缴');
作者: ywfqd    时间: 2014-2-14 13:07
或是
SELECT a.*
FROM 05个人明细 AS a
WHERE (((Not Exists (select b.公民身份证 from [05个人明细] as b where( b.公民身份证=a.公民身份证 and a.缴费类型 = '正常应缴' and b.缴费类型 = '正常应缴' and b.时间>a.时间)))) and a.缴费类型 = '正常应缴');




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3