stringsql=string.Format(@"/*dialect*/with stepCTE AS
stringsql=string.Format(@"/*dialect*/with stepCTE AS
(
(
select b.FMATERIALID as f, a.FMATERIALID as z,a.FID,a.FNUMERATOR,a.FPOSITIONNO,a.FUNITID,a.FENTRYID,a.FSEQ,ma.FNUMBER,1 AS Lev,row_number() over(partition by b.FMATERIALID order by FSEQ) as rank from T_ENG_BOMCHILD a inner join ( select * from T_ENG_BOM where fid={0}) b on a.FID=b.FID
select b.FMATERIALID as f, a.FMATERIALID as z,a.FID,a.FNUMERATOR,a.FDENOMINATOR,a.FPOSITIONNO,a.FUNITID,a.FENTRYID,a.FSEQ,ma.FNUMBER,1 AS Lev,row_number() over(partition by b.FMATERIALID order by FSEQ) as rank from T_ENG_BOMCHILD a inner join ( select * from T_ENG_BOM where fid={0}) b on a.FID=b.FID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
union all
union all
select c.f as f ,c.z as z,c.FID,c.FNUMERATOR,c.FPOSITIONNO,c.FUNITID,c.FENTRYID,c.FSEQ,c.FNUMBER,cte.Lev+1,row_number() over(partition by c.f order by c.FSEQ) as rank from
select c.f as f ,c.z as z,c.FID,c.FNUMERATOR,c.FDENOMINATOR,c.FPOSITIONNO,c.FUNITID,c.FENTRYID,c.FSEQ,c.FNUMBER,cte.Lev+1,row_number() over(partition by c.f order by c.FSEQ) as rank from
(
(
select a.FMATERIALID z ,b.FMATERIALID f,a.FID,a.FNUMERATOR,a.FPOSITIONNO,a.FUNITID,a.FENTRYID,a.FSEQ,ma.FNUMBER from T_ENG_BOMCHILD a inner join T_ENG_BOM b on a.FID=b.FID inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
select a.FMATERIALID z ,b.FMATERIALID f,a.FID,a.FNUMERATOR,a.FDENOMINATOR,a.FPOSITIONNO,a.FUNITID,a.FENTRYID,a.FSEQ,ma.FNUMBER from T_ENG_BOMCHILD a inner join T_ENG_BOM b on a.FID=b.FID inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
) c
) c
inner join stepCTE cte on cte.z=c.f
inner join stepCTE cte on cte.z=c.f
)
)
select stepCTE.*,T_ENG_BOMCHILD_l.FMEMO from stepCTE left join T_ENG_BOMCHILD_l on stepCTE.FENTRYID=T_ENG_BOMCHILD_l.FENTRYID order by Lev",id);
select stepCTE.*,T_ENG_BOMCHILD_l.FMEMO,convert(decimal(18,4),(stepCTE.FNUMERATOR/stepCTE.FDENOMINATOR)) Dosage from stepCTE left join T_ENG_BOMCHILD_l on stepCTE.FENTRYID=T_ENG_BOMCHILD_l.FENTRYID order by Lev",id);
stringsql=$@"/*dialect*/select T1.FID,t1.FMATERIALID from T_eng_bom T1 LEFT JOIN T_BD_MATERIAL T2 ON T1.FMATERIALID = T2.FMATERIALID WHERE T2.FNUMBER ='{MaterialNumber}'";
select b.FMATERIALID as 父项物料, a.FMATERIALID as 子项物料,a.FID 父项BOMID,a.FENTRYID 子项ID,b.TreeValue 父项名称,b.wlnumber,({text1}) 子项名称,
select b.FMATERIALID as 父项物料, a.FMATERIALID as 子项物料,a.FID 父项BOMID,a.FENTRYID 子项ID,b.TreeValue 父项名称,b.wlnumber,b.FNUMBER,({text1}) 子项名称,a.FREPLACEGROUP as 项次,a.FSEQ as 序号,
1 AS Lev from T_ENG_BOMCHILD a inner join
1 AS Lev from T_ENG_BOMCHILD a inner join
( select * from
( select * from
(select ({text2}) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom
(select ({text2}) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom
left join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID
left join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID
left join T_BD_MATERIAL_l wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID)
left join (select * from T_BD_MATERIAL_L where FLOCALEID=2052) wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID)
as T0 {sqlParameter}) b on a.FID=b.FID
as T0 {sqlParameter}) b on a.FID=b.FID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
inner join T_BD_MATERIAL_L mc on a.FMATERIALID=mc.FMATERIALID
inner join (select * from T_BD_MATERIAL_L where FLOCALEID=2052) mc on a.FMATERIALID=mc.FMATERIALID
union all
union all
select c.f as 父项物料 ,c.z as 子项物料,c.FID 父项BOMID,c.FENTRYID 子项ID,c.TreeValue 父项名称,wlnumbe,c.子项名称,cte.Lev+1 from
select c.f as 父项物料 ,c.z as 子项物料,c.FID 父项BOMID,c.FENTRYID 子项ID,c.TreeValue 父项名称,wlnumbe,c.FNUMBER,c.子项名称,c.FREPLACEGROUP as 项次,c.FSEQ 序号,cte.Lev+1 from
(
(
select a.FMATERIALID z ,b.FMATERIALID f,a.FID ,a.FENTRYID,b.TreeValue ,({text1}) 子项名称 ,b.wlnumber as wlnumbe
select a.FMATERIALID z ,b.FMATERIALID f,a.FID ,a.FENTRYID,b.TreeValue ,({text1}) 子项名称 ,b.FNUMBER,b.wlnumber as wlnumbe,a.FREPLACEGROUP,a.FSEQ
from T_ENG_BOMCHILD a inner join
from T_ENG_BOMCHILD a inner join
( select * from
( select * from
(select ({text2}) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom
(select ({text2}) TreeValue,wl.FNUMBER as wlnumber,bom.* from T_ENG_BOM bom
inner join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID
inner join T_BD_MATERIAL wl on bom.FMATERIALID=wl.FMATERIALID
inner join T_BD_MATERIAL_l wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID)
inner join (select * from T_BD_MATERIAL_L where FLOCALEID=2052) wlmc on wl.FMATERIALID=wlmc.FMATERIALID and bom.FMATERIALID=wlmc.FMATERIALID)
as T0 )b on a.FID=b.FID
as T0 )b on a.FID=b.FID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
inner join T_BD_MATERIAL ma on a.FMATERIALID=ma.FMATERIALID
inner join T_BD_MATERIAL_L mc on a.FMATERIALID=mc.FMATERIALID
inner join (select * from T_BD_MATERIAL_L where FLOCALEID=2052) mc on a.FMATERIALID=mc.FMATERIALID
) c
) c
inner join stepCTE cte on cte.子项物料=c.f
inner join stepCTE cte on cte.子项物料=c.f
)
)
select stepCTE.*,
select stepCTE.*,
case b.FDOCUMENTSTATUS when 'C' then '已审核' else '未审核' end states,
case b.FDOCUMENTSTATUS when 'C' then '已审核' else '未审核' end states,
case b.FFORBIDSTATUS when 'B' then '禁用' else '未禁用' end Disables,
case b.FFORBIDSTATUS when 'B' then '禁用' else '未禁用' end Disables,
case f.FERPCLSID when '2' then '1' when '3' then '1' else '2' end FERPCLSID,w.FNUMBER,l.FNAME from stepCTE
case f.FERPCLSID when '2' then '1' when '3' then '1' else '2' end FERPCLSID,w.FNUMBER as materilnumber,l.FNAME from stepCTE
left join t_BD_MaterialBase f on stepCTE.子项物料=f.FMATERIALID
left join t_BD_MaterialBase f on stepCTE.子项物料=f.FMATERIALID
left join T_ENG_BOM b on stepCTE.父项BOMID=b.FID
left join T_ENG_BOM b on stepCTE.父项BOMID=b.FID
left join T_BD_MATERIAL w on stepCTE.子项物料=w.FMATERIALID
left join T_BD_MATERIAL w on stepCTE.子项物料=w.FMATERIALID
left join T_BD_MATERIAL_L l on stepCTE.子项物料=l.FMATERIALID ";
left join (select * from T_BD_MATERIAL_L where FLOCALEID=2052) l on stepCTE.子项物料=l.FMATERIALID order by Lev,父项BOMID,项次,序号";