当前位置: 代码迷 >> Sql Server >> 请教这样的需求如何实现
  详细解决方案

请教这样的需求如何实现

热度:64   发布时间:2016-04-27 14:16:51.0
请问这样的需求怎么实现?
有一个销售表如下:

产品名称 销售数量 销售金额 购买客户ID



现在要求由这个销售表生成VIP客户表,条件为:销售表中某一客户消费的金额总数达到1W,就将其添加到VIP表中

请问怎么做简单?谢谢!

------解决方案--------------------
SQL code
select 购买客户IDfrom 销售表group by 购买客户IDhaving sum(销售金额)>10000
------解决方案--------------------
SQL code
declare @T table (产品名称 int,销售数量 int,销售金额 int,购买客户ID int)insert into @Tselect 1,111,200,1 union allselect 2,444,10,2 union allselect 3,603,10,3 union allselect 4,444,10,3 union allselect 5,44,100,4select 购买客户id  from @t group by 购买客户idhaving(sum(销售金额*销售数量)>10000)/*购买客户ID-----------13*/
------解决方案--------------------
SQL code
select 购买客户IDfrom 销售表group by 购买客户ID having sum(销售金额)>10000
------解决方案--------------------
SQL code
select * from 销售表group by 购买客户ID having sum(销售金额)>10000
------解决方案--------------------
这是orcale的吧?
探讨
谢谢LS各位帮助~~


引用:
SQL code
select 购买客户ID
from 销售表
group by 购买客户ID
having sum(销售金额)>10000

根据这个购买客户ID关联客户表,插入到VIP客户表里


请问这样获取到所有的购买客户ID后,怎么关联客户表?

假设客户表结构如下:
客户ID 客户姓名 客户电话……

------解决方案--------------------
SQL code
select 购买客户id  from 销售表 group by 购买客户idhaving(sum(销售金额*销售数量)>10000)
------解决方案--------------------
探讨

SQL code
select 购买客户id from 销售表 group by 购买客户id
having(sum(销售金额*销售数量)>10000)

------解决方案--------------------
SQL code
create table t1(产品名称 varchar(10), 销售数量 int, 销售金额 float, 购买客户ID varchar(10))insert t1 select 'ghg',45,538.00,'001' union allselect 'klk',10,856.00,'001' union allselect 'ghg',85,52.00,'002'goselect 购买客户ID as VIP客户 into vip from(select 购买客户ID from t1group by 购买客户IDhaving sum(销售数量*销售金额)>10000) as agoselect * from vip/*VIP客户-----001*/godrop table t1,vip
------解决方案--------------------
select 购买客户ID
from 销售表
group by 购买客户ID
having sum(销售金额)>10000

得到的这个购买客户ID肯定是你客户表没有的啊,直接插入不久好了吗
------解决方案--------------------
先求出满足VIP要求的客户ID:

select 购买客户ID as cid into #t
from 销售表
group by 购买客户ID
having sum(销售金额)>10000
--删除重复客户ID
delete from #t a,VIP客户表 b where a.cid=b.客户ID
--插入到VIP客户表
insert into VIP客户表(客户ID) select sid from #t
--删除临时表#t
drop table #t 


  相关解决方案