U8入库单后台查询处理 常用 SQL 语句(持续更新)

市场上常见的ERP软件有用友、金蝶等…,此篇文章阐述用友U8和SQL SERVER后台常用的的查询
先来了解一下SQL SERVER 中用友U8中 “ 收 ”单据所对应的表
这里写图片描述

“收”单据共性
- - U8中的“库存管理”下的库存单据,’仓库’、’单据日期’、’收发类别’ (比较重要的三个),它是单据呈现或者表达整张单据重要信息的唯一标识。
- - 这些唯一标识所对应的就是单据表体中多行的单据体信息,通俗的来讲单据头就是SQL中的主表,单据体就是SQL中的子表 ,把主表和子表
通过两张表相同的字段“ID”相互关联在一起就是U8软件中前台所呈现的整张完整的单据。

2.“收”单据特性
- - 单据的活灵活现:所有的“收”单据可以试用不同企业的共性以及通过单据的“格式设置”制定相应的表体/表头自定义项从而来针对不同企业的特性,所以每一个“收”单据都有不同的特性。

1)采购入库单主表:最明显的特性就是单据头有客商条目
2)采购入库单子表:显示存货信息,及对应的数量,在采购入库单和发票结算后显示对应的单价、金额、等…

①关联SQL两表语句

select * from RdRecord01 as rd left join RdRecords01 as rds ON rd.ID=rds.ID /*用两表的ID进行关联*/
where rd.dDate /*单据日期*/ between '2016-01-01' and '2016-01-31' /*16年期间1月份单据所有信息*/

②通过关联“供应商档案”表,显示客商编码所对应的客商名称

ALTER TABLE RdRecord01 ADD  cVenName NVARCHAR(100) /*在01表中添加一个名为‘cVenName’的字段*/
————————————————————————————————————————————————————————————————————————————————
UPDATE RdRecord01 set cVenName =Ven.cVenName  from Vendor AS Ven /*‘Vendor’(供应商档案表)*/
where RdRecord01.cVenCode =Ven.cVenCode  /*将表‘Vendor’中的cVenName字段(供应商名称)根据RdRecord01表和Vendor表中相同的cVenCode返回对应值/
- -逻辑与Excel表中 Lookup 函数相似,通俗的来讲,通过RdRecord01表中字段cVenCode匹配Vendor表中的字段cVenCode,返回Vendor中cVenCode所对应的
cVenName
————————————————————————————————————————————————————————————————————————————————
SELECT cVenName,cVenCode,* FROM RdRecord01
where dDate between '2016-01-01' and '2016-01-31'
  • 无论是关联仓库档案表(Warehouse)、还是收发类别表(Rd_Style)都可以按照此语句进行关联,因为在出入库数据表中所呈现的数据都是编码的形式显示,光眼睛看无法确定编码所对应的名称,所以会用到关联字段啦~,而且出入库表中都会有相应的关联的字段,比如主表与子表关联都会有相同的字段,‘ID’或者’PBVID‘等等…

③查询所有采购入库单中根据供应商汇总入库数量

SELECT  rd.cVenCode,rd.cVenName,SUM(rds.iQuantity) AS 合计入库量 from RdRecord01  rd LEFT JOIN rdrecords01 rds ON rd.ID=rds.ID 
GROUP BY  rd.cVenCode,rd.cVenName  /*汇总的依据有很多(详细GROUP BY函数这里不再赘述)*/

④删除采购入库单 (大批量删除数据动作之前,有必要先做好备份)

delete from RdRecords01 rds
where rds.ID in (select ID from RdRecord01 where dDate between '2016-01-01' and '2016-01-31') /*通过字段“ID”删除主表所对应子表记录*/
————————————————————————————————————————————————————————————————————————————————
delete from RdRecord01
where dDate between '2016-01-01' and '2016-01-31' /*删除主表记录*/  
  小编在这里吃过不少亏,还提醒各位要先把要删的记录先查出来!先查出来!先查出来!在处理较大的数据量的时候小编都会先做备份,然后删完相应的记录把删除语句清除掉,谁知道一不小心就按错了呢,到时候哭都来不及o(╥﹏╥)o,尤其是不带where条件的,到时候就哭天喊地的补数据了,当然如果对自己的语句有绝对的信心(忽略此条)
—————————————————————————————————————————————————————————————————————————————————
delete from rdrecords01
where ID  not in (select ID from RdRecord01) /*删除的顺序是先删子表再删主表,如果先把主表记录删除,子表记录会有冗余,通过这个语句进行清除*/
—————————————————————————————————————————————————————————————————————————————————
拓展1:对于后期批量的数据处理,不一定删除的是整张单据,可能会存在删除个别单据某一行,或者根据关联的采购订单或者采购发票去删除对应的采购入库单,
这个小编在后期讲到关联单据数据处理以及发票,订单的时候会讲到。
—————————————————————————————————————————————————————————————————————————————————  

3)产成品入库单主表:针对于本单位的生产入库信息,
4)产成品入库单子表:显示存货数量,并在每个月存货核算成本分配以后会回写存货的单价和金额

5)其它入库单主表:U8中其它出入库单可以是拉式生成,也可能是通过审核‘调拨单’自动生成
6)其它入库单子表:显示存货数量,单价金额通过存货核算期末处理其它出库单所对应的仓库,回写到其它入库单中(因为调拨单,先有出再有入)

查询的语句参照上述’采购入库’所对应的语句

拓展2:小编相信如果您用U8产品,在这些单据的基础上少不了,现存量,收发存汇总表,出入库流水账,出库汇总,入库汇总,销售统计表等等一系列报表,这些报表各位可以根据单据试着用SQL语句在后台呈现出来,具体在后期展示

下期更新 ‘出’单据 以及采购/销售发票所关联单据的数据处理
邮箱地址:nierlingg@163.com ;本文到此结束,后期还持续更新,喜欢沟通交流,文章写的不得体的地方还请海涵,如有不足,还请指出

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值