请各位老大和zjcxc(邹建)进来帮帮忙,好复杂好难的查询语句,如果分不够可再加100分
现有3个表
wdxx 网点信息表
CREATE TABLE [dbo].[mx_yywd] (
[wdid] [varchar] (7) COLLATE Chinese_PRC_CI_AS NOT NULL ,--主键 [Name] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[X] [float] NULL ,
[Y] [float] NULL ,
[Z] [float] NULL
) ON [PRIMARY]
GO
每天的出货单和返货单表,结构一样返货单表名称(fhd_cpmx)
如果没有出的产品也写到库里,但数量(isum=0)返货也是一样
CREATE TABLE [dbo].[chd_cpmx] (
[cpbh] [varchar] (10) NOT NULL ,--主键
[Name] [varchar] (30) NULL ,
[WdID] [varchar] (12) NOT NULL ,
[jg_zj] [money] NULL , --Tjflag=1,就是特价价格否则是正价价格
[tjflag] [bit] NULL , --特价标志,=0就是正价反之特价
[tj_x] [float] NULL , --特价时的三种返利标准,可能一个站点三种都有或其一
[tj_y] [float] NULL ,
[tj_z] [float] NULL ,
[isum] [int] NULL , --出返货数量
[lrsj] [varchar] (12) NOT NULL --主键,录入日期
) ON [PRIMARY]
GO
每天由人工录入出货数和返货数。
问题现在要统计出这样的表
条件,在某个时间段内的所有产品的
产品编码,名称,出货总数,返货总数,正价出货数,正价结算额,特价出货数,特价结算额,合计单品结算额,单品返货率
出货总数=正价和特价加到一块的出货数
返货总数=正价和特价加到一块的返货数
正价结算额=正价出货数×正价价格×(1-X)×(1-Y)×(1-Z)
特价结算额=特价出货数×特价价格×(1-tj_x)×(1-tj_y)×(1-tj_z)
合计单品结算额=正价结算额+特价结算额
单品返货率=返货数/(出货数-返货数)
----------------------------
我写了一个查出货和返货的总数的一个语句
select a.cpbh,a.name,sum(a.isum) as chs,sum(b.isum) as fhs,sum(a.isum*a.jg_zj) as zjxss,sum(b.isum*b.jg_zj) as zjjse,
from chd_cpmx as a,fhd_cpmx as b
where a.cpbh=b.cpbh and a.lrsj=b.lrsj
group by a.cpbh,a.name ,b.cpbh,b.name
order by a.cpbh
为什么查出来的数据都是双倍的(晕)