SELECT a.户主, a.户主身份证号, b.成员数, b.合计应领, b.合计应扣, a.姓名, a.关系, a.性别, a.年龄, a.参保时间, a.出生日期, a.保障证号, a.身份证号, a.大归属地, a.小归属地, a.社, a.应领金额 AS 成员应领, a.应扣金额 AS 成员应扣, a.是否死亡, a.家庭住址, a.保障类型, a.死亡日期, a.是否统计
FROM 查询6_已赋值 AS a, (SELECT 户主身份证号, COUNT(*) AS 成员数, SUM(c.应领金额) AS 合计应领, SUM(c.应扣金额) AS 合计应扣 FROM 查询6_已赋值 AS c GROUP BY 户主身份证号) AS b
WHERE a.户主身份证号=b.户主身份证号;以上查询全部信息的SQL我要条件查询的时候,我试验过两种情况:
1:
SELECT a.户主, a.户主身份证号, b.成员数, b.合计应领, b.合计应扣, a.姓名, a.关系, a.性别, a.年龄, a.参保时间, a.出生日期, a.保障证号, a.身份证号, a.大归属地, a.小归属地, a.社, a.应领金额 AS 成员应领, a.应扣金额 AS 成员应扣, a.是否死亡, a.家庭住址, a.保障类型, a.死亡日期, a.是否统计
FROM 查询6_已赋值 AS a, (SELECT 户主身份证号, COUNT(*) AS 成员数, SUM(c.应领金额) AS 合计应领, SUM(c.应扣金额) AS 合计应扣 FROM 查询6_已赋值 AS c GROUP BY 户主身份证号) AS b
WHERE a.户主身份证号=b.户主身份证号 and a.身份证号='625219196803403041';这样加上条件子句,出来的答案没有问题,但就是速度还不够快,达不到理想的效果.2:
SELECT a.户主, a.户主身份证号, b.成员数, b.合计应领, b.合计应扣, a.姓名, a.关系, a.性别, a.年龄, a.参保时间, a.出生日期, a.保障证号, a.身份证号, a.大归属地, a.小归属地, a.社, a.应领金额 AS 成员应领, a.应扣金额 AS 成员应扣, a.是否死亡, a.家庭住址, a.保障类型, a.死亡日期, a.是否统计
FROM 查询6_已赋值 AS a, (SELECT 户主身份证号, COUNT(*) AS 成员数, SUM(c.应领金额) AS 合计应领, SUM(c.应扣金额) AS 合计应扣 FROM 查询6_已赋值 AS c where c.身份证号='625219196803403041'
GROUP BY 户主身份证号) AS b
WHERE a.户主身份证号=b.户主身份证号;这样加上条件子句,出来结果倒是比较快,但是结果有问题,结果把'625219196803403041'这个身份证号所对应的这一户户主所 包括的全部成员的记录都列出来了,得到的不是单条记录.
向各位高手求教??????这个SQL的条件子句该如何写?才能使速度又快又准确??????????????????????
FROM 查询6_已赋值 AS a, (SELECT 户主身份证号, COUNT(*) AS 成员数, SUM(c.应领金额) AS 合计应领, SUM(c.应扣金额) AS 合计应扣 FROM 查询6_已赋值 AS c GROUP BY 户主身份证号) AS b
WHERE a.户主身份证号=b.户主身份证号;以上查询全部信息的SQL我要条件查询的时候,我试验过两种情况:
1:
SELECT a.户主, a.户主身份证号, b.成员数, b.合计应领, b.合计应扣, a.姓名, a.关系, a.性别, a.年龄, a.参保时间, a.出生日期, a.保障证号, a.身份证号, a.大归属地, a.小归属地, a.社, a.应领金额 AS 成员应领, a.应扣金额 AS 成员应扣, a.是否死亡, a.家庭住址, a.保障类型, a.死亡日期, a.是否统计
FROM 查询6_已赋值 AS a, (SELECT 户主身份证号, COUNT(*) AS 成员数, SUM(c.应领金额) AS 合计应领, SUM(c.应扣金额) AS 合计应扣 FROM 查询6_已赋值 AS c GROUP BY 户主身份证号) AS b
WHERE a.户主身份证号=b.户主身份证号 and a.身份证号='625219196803403041';这样加上条件子句,出来的答案没有问题,但就是速度还不够快,达不到理想的效果.2:
SELECT a.户主, a.户主身份证号, b.成员数, b.合计应领, b.合计应扣, a.姓名, a.关系, a.性别, a.年龄, a.参保时间, a.出生日期, a.保障证号, a.身份证号, a.大归属地, a.小归属地, a.社, a.应领金额 AS 成员应领, a.应扣金额 AS 成员应扣, a.是否死亡, a.家庭住址, a.保障类型, a.死亡日期, a.是否统计
FROM 查询6_已赋值 AS a, (SELECT 户主身份证号, COUNT(*) AS 成员数, SUM(c.应领金额) AS 合计应领, SUM(c.应扣金额) AS 合计应扣 FROM 查询6_已赋值 AS c where c.身份证号='625219196803403041'
GROUP BY 户主身份证号) AS b
WHERE a.户主身份证号=b.户主身份证号;这样加上条件子句,出来结果倒是比较快,但是结果有问题,结果把'625219196803403041'这个身份证号所对应的这一户户主所 包括的全部成员的记录都列出来了,得到的不是单条记录.
向各位高手求教??????这个SQL的条件子句该如何写?才能使速度又快又准确??????????????????????
a.户主身份证号,
count(1) over(partition by 户主身份证号) 成员数,
SUM(c.应领金额) over(partition by 户主身份证号) AS 合计应领,
SUM(c.应扣金额) over(partition by 户主身份证号) AS 合计应扣,
a.姓名,
a.关系,
a.性别,
a.年龄,
a.参保时间,
a.出生日期,
a.保障证号,
a.身份证号,
a.大归属地,
a.小归属地,
a.社,
a.应领金额 AS 成员应领,
a.应扣金额 AS 成员应扣,
a.是否死亡,
a.家庭住址,
a.保障类型,
a.死亡日期,
a.是否统计
FROM 查询6_已赋值 AS a
WHERE a.身份证号 = '625219196803403041';
a.户主身份证号,
count(1) over(partition by 户主身份证号) 成员数,
SUM(应领金额) over(partition by 户主身份证号) AS 合计应领,
SUM(应扣金额) over(partition by 户主身份证号) AS 合计应扣,
a.姓名,
a.关系,
a.性别,
a.年龄,
a.参保时间,
a.出生日期,
a.保障证号,
a.身份证号,
a.大归属地,
a.小归属地,
a.社,
a.应领金额 AS 成员应领,
a.应扣金额 AS 成员应扣,
a.是否死亡,
a.家庭住址,
a.保障类型,
a.死亡日期,
a.是否统计
FROM 查询6_已赋值 AS a
WHERE a.身份证号 = '625219196803403041';
用access
是轻松了,还是麻烦了
这里你在第二个语句,最外层的where条件后加一个 and a.身份证号='625219196803403041'
应该就行了