库存表
商品名 ,规格, 单价 , 数量
显示器 100 2
显示器 200 3
鼠标 200 2我想要的结果: 商品名,规格,品均价,数量,总金额
显示器 150 5 800
鼠标 200 2 400如何写???但是我写的主要是不知道怎么获得总金额????
商品名 ,规格, 单价 , 数量
显示器 100 2
显示器 200 3
鼠标 200 2我想要的结果: 商品名,规格,品均价,数量,总金额
显示器 150 5 800
鼠标 200 2 400如何写???但是我写的主要是不知道怎么获得总金额????
FROM TB
GROUP BY 商品名
FROM TB
GROUP BY 商品名
SELECT 商品名,AVG(单价) AS 品均价,SUM(数量) 数量,SUM(单价*数量)AS 总金额
FROM TB
GROUP BY 商品名
(
商品名 varchar(20),
单价 int,
数量 int
)
insert into @TT select '显示器',100,2
insert into @TT select '显示器',200,3
insert into @TT select '鼠标',200,2select 商品名,sum(数量) 数量,sum(单价*数量) 总金额 from @TT group by 商品名
商品名,avg(单价) as 品均价,
sum(数量) as 数量,
sum(单价*数量) as 总金额
from
tb
group by
商品名
(
商品名 varchar(20),
单价 int,
数量 int
)
insert into @TT select '显示器',100,2
insert into @TT select '显示器',200,3
insert into @TT select '鼠标',200,2select 商品名,sum(数量) 数量,sum(单价*数量) 总金额 from @TT group by 商品名商品名 数量 总金额
-------------------- ----------- -----------
鼠标 2 400
显示器 5 800
--> 测试数据:@A
declare @A table([商品名] varchar(20),[单价] int,[数量] int)
insert @A
select 'Monitor','100', '2' union all
select 'Monitor','200', '3' union all
select 'Mouse','200', '2' select 商品名,avg(单价) AS 品均价,SUM(数量) as 总数量,SUM(单价*数量) AS 总金额
from @A a
group by 商品名/*
商品名 品均价 总数量 总金额
-------------------- ----------- ----------- -----------
Monitor 150 5 800
Mouse 200 2 400(2 row(s) affected)
*/
是均价错了吧?--> 测试数据:@A
declare @A table([商品名] varchar(20),[单价] int,[数量] int)
insert @A
select 'Monitor','100', '2' union all
select 'Monitor','200', '3' union all
select 'Mouse','200', '2' select 商品名,SUM(单价*数量)/SUM(数量) AS 品均价,SUM(数量) as 总数量,SUM(单价*数量) AS 总金额
from @A a
group by 商品名/*
商品名 品均价 总数量 总金额
-------------------- ----------- ----------- -----------
Monitor 160 5 800
Mouse 200 2 400(2 row(s) affected)
*/
SELECT 商品名,规格,AVG(单价) AS 品均价,SUM(数量) 数量,SUM(单价*数量)AS 总金额
FROM TB
GROUP BY 商品名,规格莫非加了规格分组,就不对了???
go
create table 库存表(商品名 nvarchar(10),规格 nvarchar(10), 单价 decimal(14,6), 数量 decimal(14,0))
insert 库存表
select
'显示器' , '1*1', 100 , 2 union all select
'显示器' , '1*1', 200 , 3 union all select
'鼠标' , '1*1', 200, 2
select a.商品名,a.规格,AVG(单价) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
from 库存表 a
group by a.商品名,a.规格
/*
商品名 规格 品均价 数量 总金额
鼠标 1*1 200.000000 2 400.000000
显示器 1*1 150.000000 5 800.000000
*/
select a.商品名,a.规格,SUM(数量*单价)/sum(数量) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
from 库存表 a
group by a.商品名,a.规格
/*
商品名 规格 品均价 数量 总金额
鼠标 1*1 200.000000 2 400.000000
显示器 1*1 160.000000 5 800.000000
*/应该是这样的
from 库存表 a
group by a.商品名,a.规格不是有了吗?
from 库存表 a
group by a.商品名,a.规格
--一个商品一个规格
select a.商品名,max(a.规格) as 规格,SUM(数量*单价)/sum(数量) as 品均价,SUM(数量) as 数量,SUM(数量*单价) as 总金额
from 库存表 a
group by a.商品名
--一个商品我个格式这样即可
(
商品名 varchar(20),
规格 varchar(20),
单价 int,
数量 int
)
insert into @TT select '显示器','aa',100,2
insert into @TT select '显示器','aa',200,3
insert into @TT select '鼠标','cc',200,2select 商品名,规格,sum(数量) 数量,avg(单价) 平均价,sum(单价*数量) 总金额 from @TT group by 商品名,规格
order by 总金额 desc
商品名 规格 数量 平均价 总金额
-------------------- -------------------- ----------- ----------- -----------
显示器 aa 5 150 800
鼠标 cc 2 200 400