1.快速报表支持的界面条件
paramFormRQ.aspx,只能选择日期参数的界面;
paramFormNY.aspx,可选择日、月、年,
SelFDSPFL.aspx,可选择日、月、年、分店、分类
其中 前2项随选择日,月 自动获得, 若有分类及分店条件则需要手工写第三项.
2.定义菜单时
[程序名]支持下面3种
:RQ
:SPFL
:FDBH
其中:RQ是必有项目
3.将日期转换为年月的方法:
declare @NIANYUE INT
select @NIANYUE=YEARMONTH FROM JZQJ WHERE
:RQ>=KSRQ AND
:RQ<=JSRQ --记帐年月
declare @KSRQ DATETIME, @JSRQ DATETIME
SELECT @KSRQ=KSRQ,@JSRQ=JSRQ FROM JZQJ WHERE
YEARMONTH=@NIANYUE
declare @NIAN int, @YUE int
select @NIAN
=convert(int,substring(convert(char(10),@NIANYUE),1,4))
select @YUE
=convert(int,substring(convert(char(10),@NIANYUE),5,6))
declare @NIAN_KSRQ DATETIME,@NIAN_JSRQ
DATETIME
SELECT @NIAN_KSRQ=MIN(KSRQ),@NIAN_JSRQ=MAX(JSRQ)
FROM JZQJ WHERE YEARMONTH>=@NIANYUE*100+1 AND
YEARMONTH<=@NIANYUE+@YUE
select
@NIANYUE=convert(int,datepart(yy,:RQ)*100)+convert(int,datepart(mm,:RQ))
--自然年月
4.其他参数转换方法
declare @DEPTID
char(10)
SELECT @DEPTID =DEPTID+'%' FROM FD WHERE
FDBH=:FDBH
5.SPZHSJ_XM.YWLX
10:不含税销售成本 14:含税销售成本
30:销售金额 22:不含税销售金额 28:毛利
6. 数据源中的临时表必须开始 最后各删一次
if (select
object_id('#DU_1')) is not null drop table #DU_1
...
DROP TABLE #DU_1
注--用单引号' 若用"则错误
7.周转天数,周转率的计算
周转天数=15* (期初存货+期末存货)]/
产品销售成本
存货周转率=(商品销售成本/平均存货)*100%
平均存货=(期初存货+期末存货)/2
公式: 存货周转天数=360/存货周转率
=[360*(期初存货+期末存货)/2]/ 产品销售成本
期中库存为日库存*期间天数,成本为期间成本合计值
若看月数据, 则把360改成30即可.
存货周转天数=30/存货周转率
=[30*(期初存货+期末存货)/2]/
产品销售成本
8.字符函数的使用
sum((1-abs(sign(B.YWLX-24)))*B.JE)
9.防止分母为0的情况
UPDATE #DU1 SET
CY_SY=XSJE-XSJE_SY,
BL_SY= (CASE XSJE_SY WHEN 0 THEN 1 ELSE
(XSJE-XSJE_SY)/XSJE_SY END )
10.系统不用自然月 而是25号做分界,相关日期函数不能直接使用只能变更
改动类似如下:
--and DATEPART(MONTH,DATE)<=@YUE
--AND DATEPART(YEAR,DATE)=@NIAN
select @NIANYUE=YEARMONTH FROM JZQJ WHERE
:RQ>=KSRQ AND
:RQ<=JSRQ
....
AND YEARMONTH<=@NIANYUE
AND YEARMONTH>=@NIAN*100+1
--select
@NY=datepart(yy,:RQ)*100+datepart(mm,:RQ)
SELECT @NY=YEARMONTH FROM JZQJ WHERE
:RQ>=KSRQ AND
:RQ<=JSRQ