1.快速報表支持的界面條件
paramFormRQ.aspx,只能選擇日期參數的界面;
paramFormNY.aspx,可選擇日、月、年,
SelFDSPFL.aspx,可選擇日、月、年、分店、分類
其中 前2項隨選擇日,月 自動獲得, 若有分類及分店條件則需要手工寫第三項.
paramFormRQ.aspx,只能選擇日期參數的界面;
paramFormNY.aspx,可選擇日、月、年,
SelFDSPFL.aspx,可選擇日、月、年、分店、分類
其中
2.定義菜單時
[程序名]支持下面3種
:RQ
:SPFL
:FDBH
其中:RQ是必有項目
3.將日期轉換爲年月的方法:
declare @NIANYUE INT
select @NIANYUE=YEARMONTH FROM JZQJ WHERE
:RQ>=KSRQ AND
:RQ<=JSRQ --記帳年月
:RQ
3.將日期轉換爲年月的方法:
declare
select
declare @KSRQ DATETIME, @JSRQ DATETIME
SELECT @KSRQ=KSRQ,@JSRQ=JSRQ FROM JZQJ WHERE
YEARMONTH=@NIANYUE
SELECT
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))
select
select
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
FROM JZQJ WHERE
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
declare
SELECT @DEPTID =DEPTID+'%'
5.SPZHSJ_XM.YWLX
10:不含稅銷售成本 14:含稅銷售成本
30:銷售金額 22:不含稅銷售金額 28:毛利
10:不含稅銷售成本
6. 數據源中的臨時表必須開始 最後各刪一次
if (select object_id('#DU_1')) is not null drop table #DU_1
...
DROP TABLE #DU_1
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]/
產品銷售成本
週轉天數=15* (期初存貨+期末存貨)]/ 產品銷售成本
存貨週轉率=(商品銷售成本/平均存貨)*100%
公式:
=[360*(期初存貨+期末存貨)/2]/ 產品銷售成本
期中庫存爲日庫存*期間天數,成本爲期間成本合計值
若看月數據, 則把360改成30即可.
存貨週轉天數=30/存貨週轉率
8.字符函數的使用
sum((1-abs(sign(B.YWLX-24)))*B.JE)
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 )
UPDATE #DU1
BL_SY= (CASE XSJE_SY
10.系統不用自然月 而是25號做分界,相關日期函數不能直接使用只能變更
改動類似如下:
--and DATEPART(MONTH,DATE)<=@YUE
--AND DATEPART(YEAR,DATE)=@NIAN
--AND DATEPART(YEAR,DATE)=@NIAN
select @NIANYUE=YEARMONTH FROM JZQJ WHERE
:RQ>=KSRQ AND
:RQ<=JSRQ
....
AND YEARMONTH<=@NIANYUE
AND YEARMONTH>=@NIAN*100+1
....
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
SELECT @NY=YEARMONTH FROM JZQJ