表关联查询语句以及练习表
--销售出库单明细字段F_YDIE_ProjectName 反写至上游单据销售订单的明细字段F_YDIE_ProjectName
update t1 set F_YDIE_ProjectName =t2.F_YDIE_ProjectName
from T_SAL_ORDERENTRY t1,
--子表:销售出库单明细表y与他的拆分表x做关联查询,获取x表里的FSOEntryId(销售订单明细行)
(select x.FSOEntryId,y.F_YDIE_ProjectName
from T_SAL_OUTSTOCKENTRY_R x
INNER JOIN T_SAL_OUTSTOCKENTRY y
on x.FENTRYID = y.FENTRYID
where x.FID ='100006') t2
where t1.FENTRYID =t2.FSOENTRYID
--出库单
select * from T_SAL_OUTSTOCK
--销售出库单明细表
select * from T_SAL_OUTSTOCKENTRY
--销售出库单明细的拆分表
select * from T_SAL_OUTSTOCKENTRY_R
--销售订单
select * from T_SAL_ORDER
select * from T_SAL_ORDERENTRY
--基础资料员工表
select * from T_HR_EMPINFO
--员工表的名称(_L)
select * from T_HR_EMPINFO_L
--员工表的关联查询,查询fid和fname
select x.fid,fName from T_HR_EMPINFO x
inner join T_HR_EMPINFO_L y on x.Fid =y.FID
--基础资料部门表
select * from T_BD_DEPARTMENT
--基础资料部门表的名称(_L)
select * from T_BD_DEPARTMENT_L
--多组织情况下d.FDEPTID=d.FMASTERID只取主组织的部门
select fnumber from
T_BD_DEPARTMENT d
inner join T_BD_DEPARTMENT_L dl on d.FDEPTID=d.FMASTERID and d.FDEPTID=dl.FDEPTID
--组织表
select * from T_ORG_ORGANIZATIONS
--存储过程的创建
create proc fanxie_z
@x 类型 @id varchar(255)
as
begin
--执行语句
end
alter 修改
exec 存储过程的表名
exec 存储过程的表名 ‘参数’,‘参数2’。。。
---------------------------------------------------------------------------------------
eg:
alter proc XiaoYing
@id varchar(255)
as
begin
select tso.F_XBSY_Decimal,tso.FBILLALLAMOUNT,* from t_AR_receivable ta
--应收单关联应付单明细
inner join t_AR_receivableEntry tar on tar.FID=ta.FID
--明细表 销售订单号字段 关联 销售订单单据编号
inner join T_SAL_ORDER ts on ts.FBILLNO = tar.FORDERNUMBER
--inner join T_SAL_ORDERENTRY tse on tse.FID = ts.FID
--销售订单表头 关联 明细财务信息拆分表
inner join T_SAL_ORDERFIN tso on tso.FID = ts.FID
where ta.fid=@id
end
----------------------------------------------------------------------------------------------
--单据分布 表头,表体
--表头:只能有一个主表头,可以有多个子表头
--表体:可以有多个主表体,多个子表体
--主表头永远只有一,但是主表体可以有多个
单据头=主表头 单据体=主表体=基础资料里的字段
子单据头=子主表头=基础资料里查询的另外一个表 子单据体=子主表体
--主表头和子表头的关联关系通用FID关联
(主表头对应基本信息;子表头:除了基本信息外的)
--主表头和主表体的关联关系通用FID关联
(主表头是基本信息;主表体是明细信息/明细表)
--主表体和子表体的关联通用FENTRYID关联
(主表体是明细表;子表体是明细表的拆分表)
--子表体和子表体的关联通用FENTRYID关联
(明细表的拆分表和明细表的拆分表)
销售订单下推销售出库单,销售出库单中(明细中)的源单单号/订单单号=销售订单的单据编号
拆分表就是明细表,拆分表和主表头用FID关联。
如果两边的明细信息下的订单单号相同,那么两边的基本信息下的订单编号就相同(eg:销售出库单和应付单明细下的订单单号相同,基本信息下的订单编号就相同)
相同的表用FID/FENTRYID关联,不同的两张表通过单据转换查询对应的字段关联
通过BOS端的单据转化,查询对应的字段以及要搜索的表
单据转换中,源单指的是源头单子,目标单指的是下推出的单据
有框框的是表头,条状的是表体
只有基础资料的类型,去查找另外一张表,做对应(绑定的是什么就用什么)
下拉框了直接用对应的字段,显示出来文本则做判断
select * from T_PUR_POORDERENTRY_F --财务信息子表体
select * from T_PUR_POORDERENTRY_R --上游单据反写存储的数据
select * from T_PUR_POORDERENTRY_LK --原单关联信息表
当要查询的字段为基础资料类型(批量编辑字段属性)时,取到的值是基础资料的ID,需要通过ID和对应的基础资料表做关联查询
基础资料字段,在当前表中,只存在基础资料id。将id与当前的基础资料表的id做关联
取所用的字段,看字段的元素类型:
若元素类型是基础资料,就再看基础资料类型。查找基础资料类型对应的表1,表1的关联字段=元素类型的关联字段
若是名称,就查找元素_L eg:物料名称在物料_L表下面
_L后缀的表为多语言表
应付单就是财务表,不需要后缀加_F
两张表做关联的时候,先在单据转换中,找到源单和目标单的关联关系(在单据转换中找映射关系)
一般是源单的单据编号FBILLNO指向到目标单的某个字段
所以数据库联查的条件:源单单据编号=目标单的某个字段
单据与单据做联查的时候,先将两张单据(源单单据编号=目标单的某个字段)做关联,
当单据跟基础资料做关联的时候,找当前基础资料在单据中的字段名与基础资料表的唯一识别字段(主键)做关联
搜基础资料表里的字段的时候,先找基础资料类型,再通过基础资料类型查询对应的表
存在基础资料的字段,若是再明细表中,
先将明细表和单据头关联起来,
再找到要查询的字段里的基础资料类型,
接下来查询基础资料类型里的字段,取该字段的唯一识别字段名和表名,
将查询的表.该名称字段名a=明细表.该名称字段名b
再取查询的表_L .FID=将查询的表.FID
最后取查询的表_L.FNAME/Number
--将状态禁用修改
case when 状态='A' then '0' else '1' end 别名
--两表/多表查询
inner join 表1 s1 on s.id=s1.id
inner join 表12 s1 on s.id=s2.id
--if判断
case ta.FDOCUMENTSTATUS
when 'A'then '创建'
when 'B'then '审核中'
when 'C'then '已审核'
when 'D'then '重新审核'
when 'Z'then '暂存'
else '其他' end 单据状态
-----------------------------------------------------------------------------------
eg:
select
tbl.FNAME --申请部门
--费用项目
from T_AP_OTHERPAYABLE ta --其他应付单
left join T_BD_DEPARTMENT(部门) tb on tb.FDEPTID(主键字段名) = ta.FDEPARTMENTID(申请部门)
left join T_BD_DEPARTMENT_L(部门拆分表) tbl on tbl.FDEPTID(主键字段名) = tb.FDEPTID(主键字段名)
练习题答案
表关联查询语句以及练习表
本文2024-09-16 17:12:00发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14175.html