日期:2014-05-16  浏览次数:20856 次

请根据条件分别写2句查询语句,谢谢!
有一张名为xx的表:

客户识别号     销售额 销售日期
301330719194910015571 30000 2010-3-30
501330719195405225572 15000 2009-3-4
301330719196312025576 160000 2010-8-5
301330719194910015571 190000 2010-8-18
101330719196312025592 30000 2010-3-3
101330719196505105572 20000 2010-1-5
201330719196608245594 1200900 2009-3-15
201330719196608245594 45600 2009-2-6
101330719196312025576 34200 2010-1-15
401330719196608245594 89000 2009-1-30
401330719196608245594 17000 2009-1-29
401330719196608245594 20000 2010-1-12











请做2张查询表:
查询表1、以《xx》表中的‘客户识别号’为准,相同识别号的为同一客户,对同一客户的销售额进行合计,筛选出同一客户合计销售额在10万元以上的明细记录,注意:结果是符合条件的客户明细,不是一户只有一个合计数,而是符合条件的每个客户的原始发生明细记录。
查询表2、在上述查询一的基础上,再追加一个条件:对于同一客户的销售日期全部在2009年发生的记录(即一笔都没有2010年发生销售的),该客户的销售记录全部剔除,查询结果只显示单户销售合计额在10万元以上并且销售日期至少有一笔属于2010年的客户明细。注意也是符合2个条件的每个客户的原始发生明细记录。


======================

查询结果如下:

301330719194910015571 30000 2010-3-30
301330719196312025576 160000 2010-8-5
301330719194910015571 190000 2010-8-18
401330719196608245594 89000 2009-1-30
401330719196608245594 17000 2009-1-29
401330719196608245594 20000 2010-1-12


谢谢!


------解决方案--------------------
1.
select * from xx where 客户识别号 in (select 客户识别号 from xx group by 客户识别号 having sum(销售额)>100000)


2.
select * from xx where 客户识别号 in (select distinct 客户识别号 from xx where 客户识别号 in (select 客户识别号 from xx group by 客户识别号 having sum(销售额)>100000) and year(销售日期)='2010')

------解决方案--------------------
SQL code
select *
from 有一张名为xx的表 a
where (select sum(销售额) from 有一张名为xx的表 where 客户识别号=a.客户识别号)>100000
and (select  max(销售日期) from 有一张名为xx的表 where 客户识别号=a.客户识别号)>=#2010-01-01#