金蝶取数分析

内部往来:

   

   由于与GL相反,IC存的是当期发生数,所以可以从凭证分录取数或余额表取数,凭证分录和余额表的区别在于余额有期初而凭证分录没有,凭证分录记账更细。


   如何取得客户供应商?

 第一种办法: 根据核算id和核算标识(FFLEX6标识客户、FFLEX4标识供应商)在核算项目表t_bd_flexitem里找到对应客商id,在客户表里根据客户id找到客户描述,在供应                              商表里根据供应商id找到供应商描述。

  第二种办法:根据核算id直接在核算项目明细表t_bd_flexitemdetailv里找到FFLEX6字段里是客户id,FFLEX4字段是供应商id,在根据客商id分别取找客商描述。

select  b.fyear,
          b.fperiod,
          b.fdetailid,
          decode(ftd.fflex6,0,ftd.Fflex4,ftd.fflex6) custcode,
          decode(c.fname,null,s.fname,c.fname) custsppname,
          t1.fnumber subjcode,
          t.fname subjname,
          t1.flevel subjlev,
          t2.fnumber companycode,
          t3.fname companyname,
          b.fbeginbalance beginbalance,
          b.fdebit localdebitamount,
          b.fcredit localcreditamount,
          b.fendbalance endbalance,
          t1.fmodifydate,b.fcurrencyid
  from  wkerp.T_GL_Balance  b
  left join  wkerp.t_bd_account t1 on t1.facctid  = b.faccountid
  left join  wkerp.t_bd_account_l t on t.facctid = t1.facctid
  inner join wkerp.t_bd_accountbook t2 on b.faccountbookid = t2.fbookid
  left join  wkerp.t_bd_accountbook_l t3 on t3.fbookid = t2.fbookid
  left join  wkerp.t_bd_flexitem ft on ft.fdetailid = b.fdetailid and ft.fdatafieldname = 'FFLEX6'  --cust
  LEFT JOIN  wkerp.T_BD_FLEXITEM FT2 ON FT2.FDETAILID = B.FDETAILID AND FT2.FDATAFIELDNAME = 'FFLEX4' --supp
  left join  wkerp.t_bd_flexitemdetailv ftd on ftd.fid = b.fdetailid
  left join  wkerp.t_bd_customer_l c on c.fcustid = ftd.fflex6
  left join  wkerp.t_bd_supplier_l   s on s.fsupplierid = ftd.fflex4
  order by  b.fyear, b.fperiod,t1.fnumber,t.fname



损益科目发生额:

    金蝶系统每期的期末会将损益科目结转到本年利润,导致损益科目期末余额为0,无法通过科目余额表取数的问题解决方案一:
   1.
数据源: 明细凭证行
      根据贵方提供的逻辑从利润表取数,核对数据后有差异。母子公司间可能调表调账不统一的情况,导致存表的损益表数据与明细凭证行及手工底稿存在差异。
      例如:贵阳海信网络科技系统中2016年12月损益数据与利润表底稿数据不一致,经查是由青岛海信网络科技公司调账未调表,贵阳海信网络科技公司调表不调账导致的。
   2.筛选条件1:
排除凭证明细中结转本期损益的条目 ,依据是筛选掉凭证摘要为"结转本期损益"的记录;

   3.筛选条件2:取科目5开头的损益科目凭证行,根据科目主数据上标记的借贷方借方取凭证行借方发生额,贷方取凭证行贷方发生额


create or replace view  v_mr_income as
select b.fyear,
       b.fperiod,
       t1.fnumber subjcode, 
       t.fname subjname , 
       t1.flevel subjlev,
       t2.fnumber companycode,
       t3.fname companyname,
       v.fdebit,
       v.fcredit,
       v.fcurrencyid 
from t_gl_voucher b
left join t_gl_voucherentry v on v.fvoucherid = b.fvoucherid
left join t_bd_account t1 on t1.facctid  = v.faccountid
left join t_bd_account_l t on t.facctid = t1.facctid
inner join t_bd_accountbook t2 on b.faccountbookid = t2.fbookid
left join  t_bd_accountbook_l t3 on t3.fbookid = t2.fbookid
where t1.fnumber like '5%' and (fexplanation is null or fexplanation <>'结转本期损益')


方案二:从损益表T_GL_BALANCEPROFIT数。


你可能感兴趣的:(金蝶取数分析)