有表A如下
客户名 项目名 进货日期 单价 数量 合计
张三 毛巾 09-1-1 3 5 15
张三 毛巾 09-1-4 3 8 24
张三 肥皂 09-1-2 5 6 30
李四 毛巾 09-1-3 3 5 15
李四 牙刷 09-1-4 2 4 8
王二 牙膏 09-1-4 6 6 36
我想对此表做一下统计,统计结果如下
客户名 项目名 单价 数量 合计
张三 毛巾 3 13 39 .....张三毛巾数量和价钱合计
张三 肥皂 5 6 30
李四 毛巾 3 5 15
李四 牙刷 2 4 8
王二 牙膏 6 6 36
SQL查询语句该怎么写
客户名 项目名 进货日期 单价 数量 合计
张三 毛巾 09-1-1 3 5 15
张三 毛巾 09-1-4 3 8 24
张三 肥皂 09-1-2 5 6 30
李四 毛巾 09-1-3 3 5 15
李四 牙刷 09-1-4 2 4 8
王二 牙膏 09-1-4 6 6 36
我想对此表做一下统计,统计结果如下
客户名 项目名 单价 数量 合计
张三 毛巾 3 13 39 .....张三毛巾数量和价钱合计
张三 肥皂 5 6 30
李四 毛巾 3 5 15
李四 牙刷 2 4 8
王二 牙膏 6 6 36
SQL查询语句该怎么写
客户名,项目名,单价,sum(数量) as 数量,sum(合计) as 合计
from a
group by 客户名,项目名,单价
go
create table [tb]([客户名] varchar(4),[项目名] varchar(4),[进货日期] datetime,[单价] int,[数量] int,[合计] int)
insert [tb]
select '张三','毛巾','09-1-1',3,5,15 union all
select '张三','毛巾','09-1-4',3,8,24 union all
select '张三','肥皂','09-1-2',5,6,30 union all
select '李四','毛巾','09-1-3',3,5,15 union all
select '李四','牙刷','09-1-4',2,4,8 union all
select '王二','牙膏','09-1-4',6,6,36
goselect 客户名,项目名,单价,sum(数量) as 数量,sum(合计) as 合计
from tb
group by 客户名,项目名,单价
--测试结果:
/*
客户名 项目名 单价 数量 合计
---- ---- ----------- ----------- -----------
李四 毛巾 3 5 15
李四 牙刷 2 4 8
王二 牙膏 6 6 36
张三 肥皂 5 6 30
张三 毛巾 3 13 39(所影响的行数为 5 行)
*/
from 表A
group by 客户名,项目名
客户名,项目名,round(sum(数量) + sum(合计)/ sum(数量),2) as 单价,sum(数量) as 数量,sum(合计) as 合计
from a
group by 客户名,项目名
客户名,
项目名,
round(sum(数量) + sum(合计)/ sum(数量),2) as 单价,
sum(数量) as 数量,
sum(合计) as 合计
from a
group by 客户名,项目名
客户名,
项目名,
round((sum(数量) + sum(合计))/ sum(数量),2) as 单价,
sum(数量) as 数量,
sum(合计) as 合计
from a
group by 客户名,项目名