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' /*删除主表记录*/
⼩编在这⾥吃过不少亏,还提醒各位要先把要删的记录先查出来!先查出来!先查出来!在处理较⼤的数据量的时候⼩编都会先做备份,然后删完相应的记录把——————————————————————————————————————————————————————————————————————delete from rdrecords01
where ID not in (select ID from RdRecord01) /*删除的顺序是先删⼦表再删主表,如果先把主表记录删除,⼦表记录会有冗余,通过这个语句进⾏清除*/
——————————————————————————————————————————————————————————————————————拓展1:对于后期批量的数据处理,不⼀定删除的是整张单据,可能会存在删除个别单据某⼀⾏,或者根据关联的采购订单或者采购发票去删除对应的采购⼊库单这个⼩编在后期讲到关联单据数据处理以及发票,订单的时候会讲到。
批量更新sql语句——————————————————————————————————————————————————————————————————————
3)产成品⼊库单主表:针对于本单位的⽣产⼊库信息,
4)产成品⼊库单⼦表:显⽰存货数量,并在每个⽉存货核算成本分配以后会回写存货的单价和⾦额
5)其它⼊库单主表:U8中其它出⼊库单可以是拉式⽣成,也可能是通过审核‘调拨单’⾃动⽣成
6)其它⼊库单⼦表:显⽰存货数量,单价⾦额通过存货核算期末处理其它出库单所对应的仓库,回写到其它⼊库单中(因为调拨单,先有出
再有⼊)
查询的语句参照上述’采购⼊库’所对应的语句
拓展2:⼩编相信如果您⽤U8产品,在这些单据的基础上少不了,现存量,收发存汇总表,出⼊库流⽔账,出库汇总,⼊库汇总,销售统计
表等等⼀系列报表,这些报表各位可以根据单据试着⽤SQL语句在后台呈现出来,具体在后期展⽰
下期更新 ‘出’单据 以及采购/销售发票所关联单据的数据处理
邮箱地址:nierlingg@163 ;本⽂到此结束,后期还持续更新,喜欢沟通交流,⽂章写的不得体的地⽅还请海涵,如有不⾜,还请指
出
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论