读书人

纠结了小弟我几天的报表存储过程

发布时间: 2013-01-05 15:20:39 作者: rapoo

纠结了我几天的报表存储过程
我有3张表


create table OneceShop(
OID int identity(1,1) primary key not null,
Cid varchar(10) null, --商家编号
Clayer varchar(10) null, --商家级别
DistrictCode varchar(12) null, --区域编码
DistrictName varchar(70) null, --区域名称
CreateDate datetime null, --创建时间
UpdataDate datetime null, --更新时间
CreateMan nvarchar(64) null, --创建人
EditMan nvarchar(64) null, --修改人
tuopoFlag varchar(1) null,
TOPFlag varchar(1) null
)
go

--标注主题信息表一次店销售信息表
create table OneceShopSell(
SubjectID varchar(20) primary key not null, --主题标号
SubjectName nvarchar(64) null, --主题描述
MotorID varchar(10) null, --车型编号
MotorSerial varchar(12) null,
Category varchar(12) null,
VersionCatory varchar(12) null,
MotorBrand varchar(12) null, --车辆品牌
CreateDate datetime null, --创建时间
UpdataDate datetime null, --更新时间
CreateMan nvarchar(64) null, --创建人


EditMan nvarchar(64) null --修改人
)
go

--标注主题信息表一次店销售信息表
create table OneceShopSellDetail(
WaterID int identity(1,1) primary key not null, --流水号
SubjectID varchar(20) null, --主题编号
Qty int null, --零售
BillQty int null, --进货
EndQty int null, --库存
Cid varchar(10) null, --商家编号
CreateDate datetime null, --创建时间
UpdataDate datetime null, --更新时间
CreateMan nvarchar(64) null, --创建人
EditMan nvarchar(64) null, --修改人
Startdate datetime null, --开始旬日期
Enddate datetime null --结束旬日期
)
go



OneceShop表 获得商家的所属地区、商家级别, 关联字段cidOneceShopSell表 获得商家销售的品牌, 关联字段subjectidOneceShopSellDetail表 获得商家进、销、存、销售时间段,关联字段cid subjectid



1000013省代440000000000广东省2012-9-20 13:46:49NULLNULLNULLNULL
2000015省代450000000000广西2012-9-20 13:46:49NULLNULLNULLNULL
3000014省代520000000000贵州省2012-9-20 13:46:49NULLNULLNULLNULL
4000012省代130000000000河北省2012-9-20 13:46:49NULLNULLNULLNULL
5000009省代410000000000河南省2012-9-20 13:46:49NULLNULLNULLNULL
6000010省代230000000000黑龙江省2012-9-20 13:46:49NULLNULLNULLNULL
7000011省代430000000000湖南省2012-9-20 13:46:49NULLNULLNULLNULL
8000008省代650000000000新疆2012-9-20 13:46:49NULLNULLNULLNULL

1NULLNULLNULLNULLNULL新大洲NULLNULLNULLNULL
2NULLNULLNULLNULLNULL豪爵NULLNULLNULLNULL
3NULLNULLNULLNULLNULL本五NULLNULLNULLNULL
4NULLNULLNULLNULLNULL雅马哈NULLNULLNULLNULL
5NULLNULLNULLNULLNULL轻骑铃木NULLNULLNULLNULL



74810296669000015NULLNULLNULLNULL2011-11-1 0:00:002011-11-10 23:59:59
74910233609000015NULLNULLNULLNULL2011-11-11 0:00:002011-11-20 23:59:59
75010766678000015NULLNULLNULLNULL2011-12-1 0:00:002011-12-10 23:59:59
751102246455000015NULLNULLNULLNULL2011-12-21 0:00:002011-12-31 23:59:59
752232456111000008NULLNULLNULLNULLNULLNULL
75323456213000008NULLNULLNULLNULLNULLNULL
754232355324000013NULLNULLNULLNULLNULLNULL
75523424223767000011NULLNULLNULLNULLNULLNULL
756345556777000008NULLNULLNULLNULLNULLNULL
75734445556666000015NULLNULLNULLNULLNULLNULL
7583443435665677000009NULLNULLNULLNULLNULLNULL
75923443566566000013NULLNULLNULLNULLNULLNULL
76045611233000008NULLNULLNULLNULLNULLNULL
7614231189000009NULLNULLNULLNULLNULLNULL
762412322244000011NULLNULLNULLNULLNULLNULL
7634324566555000010NULLNULLNULLNULLNULLNULL
7643455546456000012NULLNULLNULLNULLNULLNULL
765243545566566000010NULLNULLNULLNULLNULLNULL
7665445555000008NULLNULLNULLNULLNULLNULL
767588980912000009NULLNULLNULLNULLNULLNULL
7685121234000010NULLNULLNULLNULLNULLNULL
769534475333000011NULLNULLNULLNULLNULLNULL
77054556644000012NULLNULLNULLNULLNULLNULL



我想通过一个存储过程获得
输入一个参数 “区域代码” 得到该区域包含所有的商家的销售表报

纠结了小弟我几天的报表存储过程

我写了个存储过程
大致是联合OneceShop 和OneceShopSellDetail 通过CID得到 带有商家级别 商家区域 的销售明细放到临时表
然后再通过临时表和OneceShopSell 通过subjecti最后获得一个结果集 存储过程如下

create proc test
@districtcode varchar(12)
as
begin
create table #tmp(districtname varchar(70),cid varchar(20),clayer varchar(12),qty int,billqty int,endqty int,subjectid varchar(20))
insert into #tmp select a.districtname,a.cid,a.clayer,b.qty,b.billqty,b.endqty,b.subjectid
from dbo.OneceShop a,dbo.OneceShopSellDetail b where a.cid=b.cid and
a.districtcode=@districtcode
insert into A select a.districtname,a.cid,a.clayer,a.qty,a.billqty,a.endqty,a.subjectid,c.motorbrand from
#tmp a,dbo.OneceShopSell c where a.subjectid=c.subjectid
insert into b select districtname,count(*) cid,clayer,sum(qty) as 进货,sum(billqty) as 零售,sum(endqty) as 库存,motorbrand as 品牌 from A group by motorbrand,cid,districtname,clayer
end

exec test '650000000000'

--结果集
新疆1省代45556777本五
新疆2省代358112324豪爵
新疆1省代445555轻骑铃木
新疆104省代046765428906新大洲
新疆1省代5611233雅马哈


怎么也达不到上门报表的效果

我分析下来是因为,报表中有列的字段转换成行了,因为该报表只要品牌 进、销。存的明细,其他牌子是竞争对手,只要知道总量就行了,但是我查出来这些牌子都是在同一列中的,请高手帮忙看看

最好能加我QQ19399361,我发个实例数据库 给调试下,谢谢了
[解决办法]
加我 QQ吧 17478043 注明CSDN ,我回公司再帮你看看
[解决办法]
多建几次临时表,一步一步来吧,看了也头大
[解决办法]
看报表不是标准二维表,需在前端程序中配合实现.

读书人网 >SQL Server

热点推荐