2. create table new用户表 ( 用户ID VARCHAR(50), 地址 varchar(5), ........ )update 用户表 set 用户ID=用户ID+用户名insert into new用户表 select 用户ID,地址.....from 用户表
第一个: select * from 用户表 a join (select 用户ID from 采购详细表 where (采购金额 between 10 and 1000) and (month(采购日期)=5))b on a.用户ID=b.用户ID
第三个: select 用户ID, 地址 from 用户表 a join (select 用户ID from 采购详细表 where 数量>100)b on a.用户ID=b.用户ID
1. select a.用户ID,a.产品ID,sum(b.采购金额) as 采购金额,sum(b.数量) as 数量,c.产品名称,c.单个金额 from 用户表 right join 采购详细表 b left join 产品表 c on month(采购日期) = 5 and a.用户ID=b.用户ID and b.产品ID=c.产品ID and sum(b.采购金额) >= 10w and sum(b.采购金额) <= 100w group by a.用户ID,a.产品ID,c.产品名称,c.单个金额 3. select a.用户ID,a.地址 from ( select a.用户ID,a.地址,a.产品ID, b.数量,c.产品名称 from 用户表 right join 采购详细表 b left join 产品表 c where a.用户ID=b.用户ID and b.产品ID=c.产品ID) a where a.采购数量 > 100 and a.产品名称 = '柴油'写的不好的请指出,我也是初学者
-- 1. 求所有在5月份采购的金额在10w-100w的客户所有资料. select * from 用户表 a where ( select sum(采购金额) from 采购详细表 where 用户ID=a.用户ID and month(采购日期)=5 ) between 100000 and 1000000
-- 2. 将用户表的用户ID字段内容改为(用户ID+用户名)表示,并删除用户名字段. --是否考虑 采购详细表 的同步更改? 如果考虑: --同步修改 采购详细表 update a set 用户ID=a.用户ID+b.用户名 from 采购详细表 a join 用户表 b on a.用户ID=b.用户ID--修改 用户表 update 用户表 set 用户ID=用户ID+用户名--删除字段 用户名 alter table 用户表 drop column 用户名
-- 3. 查找用户一次性采购产品:柴油的数量大于100桶的用户ID和地址. select 用户ID,地址 from 用户表 aa where exists( select 1 from 采购详细表 a,产品表 b where a.用户ID=aa.用户ID and a.产品ID=b.产品ID and a.数量>100 and b.产品名称='柴油' )
--修改 用户表 update 用户表 set 用户ID=rtrim(用户ID)+rtrim(用户名)--删除字段 用户名 alter table 用户表 drop column 用户名
题1: select * from 用户表 where 用户id in (select 用户id,sum(采购金额) as sum from 采购详细表 group by 用户id having sum >= 10w and sum <= 100w)题2: select 用户ID+用户名 as 用户ID,地址... into 新表名 from 用户表drop table 用户表题3: select * from 用户表 where 产品ID in (select 用户ID from 采购详细表 where 数量 > 100 and 产品ID in (select 产品ID from 产品表 where 产品名称 = "柴油"))
第一个问题: Select 用户表.用户ID,用户名,地址... from 用户表 left outer join 采购详细表 on 采购详细表.用户ID = 用户表.用户ID where datepart(mm, 采购日期) = 5 group by 用户表.用户ID,用户名,地址... having sum(采购金额) between 10w and 100w
第二个问题:Declare cur Cursor for Select 用户ID from 用户表 Open cur declare @ID varchar(100) fetch next from cur into @ID while @@fetch_status <> -1 begin update 用户表 set 用户ID = 用户ID + 用户名 where 用户ID = @ID fetch next from cur into @ID end close cur DEALLOCATE cur GO alter table 用户表 drop column 用户名 GO
题1修改一下: select * from 用户表 where 用户id in (select 用户id,sum(采购金额) as sum from 采购详细表 group by 用户id having sum >= 10w and sum <= 100w and month(采购日期) = 5)
create table new用户表
(
用户ID VARCHAR(50),
地址 varchar(5),
........
)update 用户表 set 用户ID=用户ID+用户名insert into new用户表
select 用户ID,地址.....from 用户表
select *
from 用户表 a join
(select 用户ID from 采购详细表 where (采购金额 between 10 and 1000) and (month(采购日期)=5))b
on a.用户ID=b.用户ID
select 用户ID, 地址
from 用户表 a join
(select 用户ID from 采购详细表 where 数量>100)b
on a.用户ID=b.用户ID
select a.用户ID,a.产品ID,sum(b.采购金额) as 采购金额,sum(b.数量) as 数量,c.产品名称,c.单个金额
from 用户表 right join 采购详细表 b left join 产品表 c
on month(采购日期) = 5
and a.用户ID=b.用户ID
and b.产品ID=c.产品ID
and sum(b.采购金额) >= 10w
and sum(b.采购金额) <= 100w
group by a.用户ID,a.产品ID,c.产品名称,c.单个金额
3.
select a.用户ID,a.地址
from (
select a.用户ID,a.地址,a.产品ID, b.数量,c.产品名称
from 用户表 right join 采购详细表 b left join 产品表 c
where a.用户ID=b.用户ID
and b.产品ID=c.产品ID) a
where a.采购数量 > 100
and a.产品名称 = '柴油'写的不好的请指出,我也是初学者
select * from 用户表 a
where (
select sum(采购金额) from 采购详细表
where 用户ID=a.用户ID and month(采购日期)=5
) between 100000 and 1000000
-- 2. 将用户表的用户ID字段内容改为(用户ID+用户名)表示,并删除用户名字段.
--是否考虑 采购详细表 的同步更改? 如果考虑:
--同步修改 采购详细表
update a set 用户ID=a.用户ID+b.用户名
from 采购详细表 a
join 用户表 b on a.用户ID=b.用户ID--修改 用户表
update 用户表 set 用户ID=用户ID+用户名--删除字段 用户名
alter table 用户表 drop column 用户名
select 用户ID,地址
from 用户表 aa
where exists(
select 1 from 采购详细表 a,产品表 b
where a.用户ID=aa.用户ID and a.产品ID=b.产品ID
and a.数量>100 and b.产品名称='柴油'
)
--修改 用户表
update 用户表 set 用户ID=rtrim(用户ID)+rtrim(用户名)--删除字段 用户名
alter table 用户表 drop column 用户名
select * from 用户表
where 用户id in
(select 用户id,sum(采购金额) as sum from 采购详细表 group by 用户id
having sum >= 10w and sum <= 100w)题2:
select 用户ID+用户名 as 用户ID,地址... into 新表名 from 用户表drop table 用户表题3:
select * from 用户表
where 产品ID in
(select 用户ID from 采购详细表
where 数量 > 100
and 产品ID in (select 产品ID from 产品表 where 产品名称 = "柴油"))
Select 用户表.用户ID,用户名,地址...
from 用户表
left outer join 采购详细表 on 采购详细表.用户ID = 用户表.用户ID
where datepart(mm, 采购日期) = 5
group by 用户表.用户ID,用户名,地址...
having sum(采购金额) between 10w and 100w
Open cur
declare @ID varchar(100)
fetch next from cur into @ID
while @@fetch_status <> -1
begin
update 用户表 set 用户ID = 用户ID + 用户名 where 用户ID = @ID
fetch next from cur into @ID
end
close cur
DEALLOCATE cur
GO
alter table 用户表 drop column 用户名
GO
select * from 用户表
where 用户id in
(select 用户id,sum(采购金额) as sum from 采购详细表 group by 用户id
having sum >= 10w and sum <= 100w and month(采购日期) = 5)