有两个表a,b字段分别为:
a表
票号 客户全称 此次应收 操作员 日期
200705030001,某某公司,120.00,张三,20070503
200705030002,某某公司,162.00,王二,20070503
200705030003,某某公司,190.00,张三,20070503
.
.
.B表
票号, 产品名称 规格 产地 商标 销售金额
200705030001 某某产品 12*123 大连 1 100.00
200705030001 某某产品 wq*12 大庆 3 20.00
200705030002 某某产品 62s 美国 2 162.00
.
.
.如何按时间段(可由票号取得)得到如下统计表,计算出每人的商标销售总额
1(商标) 2 3 4 5
张三 2521.00 0 322 222 11
0李四 0 100 3.00 22 22
王二 100 85 6.3 22 225 .
.
.
请帮忙,想很长时间,没找到方法
a表
票号 客户全称 此次应收 操作员 日期
200705030001,某某公司,120.00,张三,20070503
200705030002,某某公司,162.00,王二,20070503
200705030003,某某公司,190.00,张三,20070503
.
.
.B表
票号, 产品名称 规格 产地 商标 销售金额
200705030001 某某产品 12*123 大连 1 100.00
200705030001 某某产品 wq*12 大庆 3 20.00
200705030002 某某产品 62s 美国 2 162.00
.
.
.如何按时间段(可由票号取得)得到如下统计表,计算出每人的商标销售总额
1(商标) 2 3 4 5
张三 2521.00 0 322 222 11
0李四 0 100 3.00 22 22
王二 100 85 6.3 22 225 .
.
.
请帮忙,想很长时间,没找到方法
解决方案 »
- 存储过程错误
- 将附件放到数据库里,数据库访问变慢。有什么方法能保障附件的安全性,又能不影响SQL Server的访问速度
- 大家好请大家给个思路:从一个系统中两个表里的数据导入到另一个系统中的一个表里,这两个表的结构不一样.
- 大家做库存管理时,做不做库存流水帐呀?
- SQL存储过程语句错误
- 字段名的修改
- 奇怪问题:为什么将插入记录的日期列的值设置为空时,日期却有显示为“1900-1-1”?下附测试代码。
- 如何得到本机上所有sql的实例名?
- 为什么SQL Server 2000 没有在1433上监听?!
- 我要删除自己的没用的、不要的帖子,可以吗?怎么删除?
- 多表合并,大虾们帮忙。节日愉快!
- 字段中有数组怎么查询?
Select
操作员,
SUM(Case 商标 When 1 Then 销售金额 Else 0.00 End) As [1],
SUM(Case 商标 When 2 Then 销售金额 Else 0.00 End) As [2],
SUM(Case 商标 When 3 Then 销售金额 Else 0.00 End) As [3],
SUM(Case 商标 When 4 Then 销售金额 Else 0.00 End) As [4],
SUM(Case 商标 When 5 Then 销售金额 Else 0.00 End) As [5]
From
A
Inner Join
B
On A.票号 = B.票号
Group By
操作员--如果商标的種類不是固定的
Declare @S Nvarchar(4000)
Select @S = N'Select 操作员'
Select @S = @S + N', SUM(Case 商标 When ' + Rtrim(商标) + N' Then 销售金额 Else 0.00 End) As ['+ Rtrim(商标) + ']'
From B Group By 商标
Select @S = @S + N' From A Inner Join B On A.票号 = B.票号 Group By 操作员'
EXEC(@S)
(票号 Char(14),
客户全称 Nvarchar(20),
此次应收 Numeric(10, 2),
操作员 Nvarchar(10),
日期 Char(10))
Insert A Select '200705030001',N'某某公司',120.00,N'张三','20070503'
Union All Select '200705030002',N'某某公司',162.00,N'王二','20070503'
Union All Select '200705030003',N'某某公司',190.00,N'张三','20070503'Create Table B
(票号 Char(14),
产品名称 Nvarchar(20),
规格 Varchar(10),
产地 Nvarchar(20),
商标 Int,
销售金额 Numeric(10, 2))
Insert B Select '200705030001', N'某某产品', '12*123', N'大连', 1, 100.00
Union All Select '200705030001', N'某某产品', 'wq*12', N'大庆', 3, 20.00
Union All Select '200705030002', N'某某产品', '62s', N'美国', 2, 162.00
Union All Select '200705030003', N'某某产品', '50g', N'美国', 4, 190.00
GO
--如果商标的種類是固定的
Select
操作员,
SUM(Case 商标 When 1 Then 销售金额 Else 0.00 End) As [1],
SUM(Case 商标 When 2 Then 销售金额 Else 0.00 End) As [2],
SUM(Case 商标 When 3 Then 销售金额 Else 0.00 End) As [3],
SUM(Case 商标 When 4 Then 销售金额 Else 0.00 End) As [4],
SUM(Case 商标 When 5 Then 销售金额 Else 0.00 End) As [5]
From
A
Inner Join
B
On A.票号 = B.票号
Group By
操作员--如果商标的種類不是固定的
Declare @S Nvarchar(4000)
Select @S = N'Select 操作员'
Select @S = @S + N', SUM(Case 商标 When ' + Rtrim(商标) + N' Then 销售金额 Else 0.00 End) As ['+ Rtrim(商标) + ']'
From B Group By 商标
Select @S = @S + N' From A Inner Join B On A.票号 = B.票号 Group By 操作员'
EXEC(@S)
GO
Drop Table A, B
--Result
/*
操作员 1 2 3 4 5
王二 .00 162.00 .00 .00 .00
张三 100.00 .00 20.00 190.00 .00*/