U9_sql收集

财务表

资金-现金,银行存款,应收票据发生额

with uccashflow as (
SELECT   
    a.AccountedDr,  
    a.AccountedCr, 
        e.segment1 as code ,
        left(e.segment1  ,4) as tcode,
        f.displayname,
        left(f.displayname  ,4) as tcodename,
    --a.OpposingAccountNames,  
    b.org,      
    b.BusinessDate,
        c.name,
        d.Abstracts 
FROM   gl_entry a  
LEFT JOIN   GL_Voucher b ON a.Voucher = b.id  
left join Base_Organization_Trl c on b.org=c.id
left join GL_Entry_Trl d on a.id=d.id
left join CBO_Account e on a.Account=e.id
left join CBO_Account_Trl f on e.id=f.id
WHERE   1=1
and b.VoucherSourceMethod!=9 and  b.VoucherStatus!=0  --排除期初和草稿凭证
    and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        and FORMAT(b.BusinessDate, 'yyyy-MM-dd') <= '2024-11-30'
        AND a.iserror=0
        and LEFT(e.Segment1,4) IN('1001','1002','1121')
    )

select sum(accountedcr) as 贷,SUM(accounteddr) as 借, sum(accounteddr)-SUM(accountedcr) as 余额,code from uccashflow   group by code

资金—现金,银行存款,应收票据期初额

select LEFT(b.code, CHARINDEX('|', b.code) - 1) as code,
LEFT(f.Displayname, CHARINDEX('|', f.Displayname) - 1) AS codename,  
g.displayname as year_month,
g.year,g.code as month,
h.name as company,
sum(
case when e.Direction=0 
then (a.BalanceValue_BeginBalanceDr-a.BalanceValue_BeginBalanceCr)
else (a.BalanceValue_BeginBalanceCr-a.BalanceValue_BeginBalanceDr) end 
)
from GL_GeneralLedger a
inner join Base_SetofBooks a1 on a1.ID=a.AccessKey_SOB
inner join CBO_Account b on b.id=a.AccessKey_Account
--inner join MANA_AssetLiabilitys d on d.SubjectAttribute=b.AccountProperty
inner join CBO_AccountProperty e on e.id=b.AccountProperty
inner join CBO_Account_trl f on b.id=f.id
inner join Base_SOBAccountingPeriod g on a.AccessKey_PostPeriod= g.id
inner join Base_Organization_trl h on b.org= h.id
where a1.Code=102  and a.AccessKey_Currency=1
and g.displayname in ('2024-07','2024-08')
and a.AccessKey_IsSumLowLevel=0 
--AND B.CODE='1001|0|0|0|0|0|0|0|0|0|0|0|0'
--and d.SubjectAttribute=@AccountAttribute and d.AssetLiability=@AssetReportItem
group by LEFT(b.code, CHARINDEX('|', b.code) - 1) ,
LEFT(f.Displayname, CHARINDEX('|', f.displayname) - 1) ,
g.displayname ,
g.year,g.code ,
h.name 

拆卸订单材料成本

-- 找到拆卸订单,拆卸订单对应物物料,对应生产成本表单价 
-- MO-2407200008
select a.ID,c.mo ,b.name,c.AdjustWIPCost_CURRENTcost + c.AdjustWIPCost_PRIORcost as 在制成本,d.displayname as 会计年月 from MO_MO a 
left join MO_MODocType_Trl b on  a.MODocType=b.id  
-- 关联生产订单对应材料成本  EarnedCost 记入成本  ActualQty 实际用量 ItemMaster 料品信息 Period 会计期间
left join CA_CostQuery c on a.ID=c.mo 
-- 会计期间 计算几月份的在制成本则算该月份的成本占比情况
left join Base_SOBAccountingPeriod d on c.SOBPeriod= d.id
where b.sysmlflag='zh-CN' and b.name in ('现场拆卸订单','公司拆卸订单') and docNO='MO-2407200008'
and d.DisplayName='2024-07' 
and c.AdjustWIPCost_CURRENTcost + c.AdjustWIPCost_PRIORcost <> 0

枚举值

select A.ExtEnumType,A.ExtEnumTypeUID,A2.Code as EnumTypeCode,A.Code,A.EValue,A1.Name
from UBF_Sys_ExtEnumValue A
INNER JOIN UBF_Sys_ExtEnumValue_Trl A1 ON (A1.ID=A.ID and a1.SysMLFlag='zh-CN')
LEFT JOIN UBF_Sys_ExtEnumType A2 ON A2.ID = A.ExtEnumType
where A2.Code='UFIDA.U9.Base.SOB.SOBTypeEnum'--此处更改字典查到的枚举值即可

自制报表存储过程写法

-- 此段代码用于调试信息用,在普通查询中调用存储过程
exec CGdingdan @DOCNO=N' (DOCNO = N''PO0-2406010005'') ',@status='2'
--exec CGdingdan @DOCNO='PO0-2406010005',@status='2'
--用于u9c报表开发,与前端控件条件做自定义筛选用,如> < = 包含,不等于等等条件,或者为空时数据处理。

ALTER PROCEDURE [dbo].[CGdingdan]
    @DOCNO NVARCHAR(1000),
    @status char(1)
    --@date date    
AS  
BEGIN 
declare @doc_condition nvarchar(1000)
if(isnull(@DocNo,'')!='')
begin
set @doc_condition = ' and ' + replace(@DOCNO,'DOCNO','a.DOCNO')
print (@doc_condition)
end
else
begin
set @doc_condition =''
end

declare @sql nvarchar(max)

set @sql='
select a.DocNo,a.BusinessDate,a.Status,b.PurQtyTU from PM_PurchaseOrder a 
left join PM_POLine b on a.ID=b.PurchaseOrder 
left join PM_POShipLine c on b.ID=c.POLine 
 where a.status='  
 -- + '2' + 'and a.DOCNO = N''PO0-2406010005'
 + @status+@doc_condition

print(@sql)
exec(@sql)
-----------------------------------------------------------------------
-- 在UBF调试时发现字段信息无法正常取出,用下段代码带出
-- 调试完成后,切换为上段代码,作用是查询方式比较灵活支持各种><=包含,不包含等
--select a.DocNo,a.BusinessDate,a.Status,b.PurQtyTU from PM_PurchaseOrder a 
--left join PM_POLine b on a.ID=b.PurchaseOrder 
--left join PM_POShipLine c on b.ID=c.POLine 
-- where a.status= @status 
--and a.DOCNO =@DOCNO

END


拆卸成本调整单(现场)

厂外:拆卸订单和BOM对比(也就是没有拆出的物料)找到价格,算出这些材料价格占比。然后把订单在制金额(已经拆卸过的剩余成本+人工等等成本),分摊到这些拆不出的材料上

-- 拆卸订单和BOM对比(也就是没有拆出的物料)找到价格,算出这些材料价格占比。然后把订单在制金额(已经拆卸过的剩余成本+人工等等成本),分摊到这些拆不出的材料上
SELECT
    *,
    ( AVG ( CaiLiaoF ) * ( FenTanXiS / FenTanXiS_SUM ) ) AS CaiLiaoFFT,
    ( AVG ( RenGongF ) * ( FenTanXiS / FenTanXiS_SUM ) ) AS RenGongFFT,
    ( AVG ( ZhiZaoF ) * ( FenTanXiS / FenTanXiS_SUM ) ) AS ZhiZaoFFT,
    ( AVG ( WaiXieF ) * ( FenTanXiS / FenTanXiS_SUM ) ) AS WaiXieFFT,
    ( AVG ( JiQiF ) * ( FenTanXiS / FenTanXiS_SUM ) ) AS JiQiFFT 
FROM
    (
    SELECT
        *,
        SUM ( FenTanXiS ) OVER ( ) AS FenTanXiS_SUM -- 使用窗口函数计算 B 列的总和
        
    FROM
        (
        SELECT
            *,
            ( TEMPS.BOMMZUsageQty* TEMPSS.BOMZCostAVG ) AS FenTanXiS 
        FROM
            (
            ----------------------------------------------
            --料品信息
            SELECT
                MO_MO.ID,
                MO_MO.DocNO,
                MO_MO.BOMMaster,
                DATEPART( yy, FICloseDate ) AS MO_MOYear,
                FORMAT ( FICloseDate, 'MM' ) AS MO_MOMonth,
                CBO_ItemMaster.code,
                CBO_ItemMaster.name,
                CBO_ItemMaster.specs,
                BM.BOMVersionCode,
                BOMMZ.BOMMZCode,
                BOMMZ.BOMMZName,
                BOMMZ.BOMMZspecs,
                BOMMZ.BOMMZUsageQty 
            FROM
                MO_MO
                LEFT JOIN CBO_ItemMaster ON MO_MO.ItemMaster= CBO_ItemMaster.ID
                LEFT JOIN CBO_BOMMaster BM ON MO_MO.BOMMaster= BM.ID
                LEFT JOIN (
                -------------------------------------------------
                -- BOM 子项
                SELECT
                    BOMMaster,
                    ItemMaster,
                    CBO_ItemMaster.Code AS BOMMZCode,
                    CBO_ItemMaster.Name AS BOMMZName,
                    CBO_ItemMaster.specs AS BOMMZspecs,
                    UsageQty AS BOMMZUsageQty 
                FROM
                    CBO_BOMComponent
                    LEFT JOIN CBO_ItemMaster ON CBO_BOMComponent.ItemMaster= CBO_ItemMaster.ID 
                    --------------------------------------------------
                ) BOMMZ ON MO_MO.BOMMaster= BOMMZ.BOMMaster 
            WHERE
                MODocType = '1002405130000021' --AND DocNO='MO-2407200008'
                
                AND BOMMZ.ItemMaster NOT IN ( SELECT item FROM MO_MOOutput WHERE MO_MOOutput.MO= MO_MO.ID ) 
            ) TEMPS
            LEFT JOIN (
            ----------------------------------------------------
            -- 料品存货成本
            SELECT
                iteminfo_itemcode,
                Base_SOBAccountingPeriod.Year,
                Base_SOBAccountingPeriod.Code AS BOMZCostMonth,
                AVG ( ElementTypeCost_MaterialCurrentCost ) AS BOMZCostAVG 
            FROM
                IC_ItemInvCost
                LEFT JOIN Base_SOBAccountingPeriod ON IC_ItemInvCost.SOBPeriod= Base_SOBAccountingPeriod.ID 
            GROUP BY
                iteminfo_itemcode,
                Base_SOBAccountingPeriod.Year,
                Base_SOBAccountingPeriod.Code 
            ) TEMPSS ON TEMPS.BOMMZCode= TEMPSS.ItemInfo_ItemCode
            ------------------------------------------------
            LEFT JOIN (
            -- 调整成本费用表
            ----------------------------------------
            SELECT
                MO,
                SOBPeriod,
                [1002311060101521] AS CaiLiaoF,
                [1002311060101523] AS RenGongF,
                [1002311060101525] AS ZhiZaoF,
                [1002311060101527] AS WaiXieF,
                [1002311060101529] AS JiQiF 
            FROM
                (
                SELECT
                    MO,
                    SOBPeriod,
                    costelement,
                    ( AdjustWIPCost_CURRENTcost + AdjustWIPCost_PRIORcost ) AS TZCost 
                FROM
                    CA_CostQuery
                    LEFT JOIN CBO_CostElement ON CA_CostQuery.costelement= CBO_CostElement.ID 
                WHERE
                    AdjustWIPCost_CURRENTcost + AdjustWIPCost_PRIORcost <> 0 --and MO='1002407230004056'
                    
                ) AS SourceTable PIVOT ( SUM ( TZCost ) FOR costelement IN ( [1002311060101521], [1002311060101523], [1002311060101525], [1002311060101527], [1002311060101529] ) ) AS PivotedTable 
                ---------------------------------------------
            ) TEMPSSS ON TEMPS.ID= TEMPSSS.MO 
        WHERE
            TEMPS.MO_MOYear= TEMPSS.Year 
            AND TEMPS.MO_MOMonth= TEMPSS.BOMZCostMonth 
        ) AS temps1 
    ) AS TEMPS2 
WHERE
    1 = 1 --and (ISNULL(@DocNO, '') = '' OR DocNO = @DocNO)
--and MO_MOYear=  @MO_MOYear
--and MO_MOMonth= @MO_MOMonth
    
GROUP BY
    TEMPS2.ID,
    TEMPS2.DocNO,
    TEMPS2.BOMMaster,
    TEMPS2.BOMMaster,
    TEMPS2.MO_MOYear,
    TEMPS2.MO_MOMonth,
    TEMPS2.code,
    TEMPS2.name,
    TEMPS2.BOMVersionCode,
    TEMPS2.BOMMZCode,
    TEMPS2.BOMMZName,
    TEMPS2.BOMMZUsageQty,
    TEMPS2.iteminfo_itemcode,
    TEMPS2.Year,
    TEMPS2.BOMZCostMonth,
    TEMPS2.BOMZCostAVG,
    TEMPS2.MO,
    TEMPS2.SOBPeriod,
    TEMPS2.CaiLiaoF,
    TEMPS2.RenGongF,
    TEMPS2.ZhiZaoF,
    TEMPS2.WaiXieF,
    TEMPS2.JiQiF,
    TEMPS2.FenTanXiS,
    TEMPS2.FenTanXiS_SUM, 
    TEMPS2.specs,
    TEMPS2.BOMMZspecs
ORDER BY
    DocNo

拆卸成本调整单(公司)

与厂外不同,内部拆卸订单的价格按实际库存价格算占比

ALTER PROCEDURE [dbo].[TiaoZhengDanGS]
    @DocNO nvarchar(50),
    @DocType nvarchar(50),
    @MO_MOYear int,
    @MO_MOMonth int
AS
BEGIN
--整合
SELECT *,(AVG(CaiLiaoF) * (SS1 / Total_B)) AS CaiLiaoFFT,(AVG(RenGongF) * (SS1 / Total_B)) AS RenGongFFT,(AVG(ZhiZaoF) * (SS1 / Total_B)) AS ZhiZaoFFT,(AVG(WaiXieF) * (SS1 / Total_B)) AS WaiXieFFT,(AVG(JiQiF) * (SS1 / Total_B)) AS JiQiFFT
 FROM (
SELECT
MO_MO.ID,MO_MO.DocNO,
--MO_MO.BOMMaster,
MO_MO.MODocType,DATEPART(yy, ActualCompleteDate) AS MO_MOYear,FORMAT(ActualCompleteDate, 'MM') AS MO_MOMonth,
CBO_ItemMaster.code,CBO_ItemMaster.name,
MO_MOOutputTEMP.ChanChuMO,MO_MOOutputTEMP.ChanChuCode,MO_MOOutputTEMP.ChanChuName,ChanChuQty,
ISNULL(ChanChuZCostAVG, 0) AS ChanChuZCostAVG,
CaiLiaoF,RenGongF ,ZhiZaoF, WaiXieF, JiQiF,
(ChanChuQty*ISNULL(ChanChuZCostAVG, 0)) AS SS1,
SUM((ChanChuQty*ISNULL(ChanChuZCostAVG, 0))) OVER () AS Total_B
FROM MO_MO 
LEFT JOIN CBO_ItemMaster ON MO_MO.ItemMaster=CBO_ItemMaster.ID
RIGHT JOIN (
--拆卸订单产出
SELECT MO_MOOutput.MO AS ChanChuMO,CBO_ItemMaster.Code AS ChanChuCode,CBO_ItemMaster.Name AS ChanChuName,PlanOutputQty AS ChanChuQty FROM MO_MOOutput
LEFT JOIN CBO_ItemMaster ON MO_MOOutput.Item=CBO_ItemMaster.ID
--产出类型0主产品1副产品2联产品
WHERE MO_MOOutput.OutputType <>'0' AND (MO_MOOutput.MO+MO_MOOutput.Item) NOT IN (SELECT MO+Item FROM Complete_RcvRptDocLine)
) MO_MOOutputTEMP ON MO_MO.ID=MO_MOOutputTEMP.ChanChuMO
LEFT JOIN (
--料品期间结存单价
SELECT iteminfo_itemcode,Base_SOBAccountingPeriod.Year,Base_SOBAccountingPeriod.Code AS ChanChuZCostMonth,AVG(ElementTypeCost_MaterialCurrentCost) AS ChanChuZCostAVG FROM IC_ItemInvCost
LEFT JOIN Base_SOBAccountingPeriod ON IC_ItemInvCost.SOBPeriod=Base_SOBAccountingPeriod.ID
GROUP BY iteminfo_itemcode,Base_SOBAccountingPeriod.Year,Base_SOBAccountingPeriod.Code
) JieCunDJ ON MO_MOOutputTEMP.ChanChuCode=JieCunDJ.ItemInfo_ItemCode
LEFT JOIN (
--调整单金额
    SELECT MO,SOBPeriod,[1002311060101521] AS CaiLiaoF, [1002311060101523] AS RenGongF , [1002311060101525] AS ZhiZaoF, [1002311060101527] AS WaiXieF, [1002311060101529] AS JiQiF
    FROM   
    (  
    SELECT MO,SOBPeriod,costelement,(AdjustWIPCost_CURRENTcost+AdjustWIPCost_PRIORcost) AS TZCost FROM CA_CostQuery
    left join CBO_CostElement ON CA_CostQuery.costelement=CBO_CostElement.ID
    WHERE AdjustWIPCost_CURRENTcost + AdjustWIPCost_PRIORcost <> 0 --and MO='1002407230004056'
    ) AS SourceTable  
    PIVOT  
    (  
    SUM(TZCost) FOR costelement IN ( [1002311060101521], [1002311060101523], [1002311060101525], [1002311060101527], [1002311060101529])
    ) AS PivotedTable
) TiaoZhengD ON MO_MO.ID=TiaoZhengD.MO
) AS TEMP2
--WHERE MODocType='1002405150054799' AND DocNO='MO-2410290003'
WHERE
    1 = 1 
and  MODocType='1002405150054799'
and (ISNULL(@DocNO, '') = '' OR DocNO = @DocNO)
and (ISNULL(@DocType, '') = '' OR MODocType=@DocType)
and MO_MOYear=  @MO_MOYear
and MO_MOMonth= @MO_MOMonth
GROUP BY TEMP2.ID,TEMP2.DocNO,MODocType,MO_MOYear,MO_MOMonth,TEMP2.code,TEMP2.name,TEMP2.ChanChuMO,TEMP2.ChanChuCode,TEMP2.ChanChuName,TEMP2.ChanChuQty,
TEMP2.ChanChuZCostAVG,TEMP2.CaiLiaoF,TEMP2.RenGongF,TEMP2.ZhiZaoF,TEMP2.WaiXieF,TEMP2.JiQiF,TEMP2.SS1,TEMP2.Total_B
order by docNO 

END

项目制造费用与订单对比

用于财务查询当月做凭证对应辅助核算,与当月实际业务订单对应不上的情况,方便调整

with u9c5101 as (
SELECT
        FORMAT(b.BusinessDate, 'yyyy-MM') as period,
    a.AccountedDr,  
    a.AccountedCr, 
    CASE   
        WHEN CHARINDEX('|', a.OpposingAccountCodes) > 0 THEN   
            LEFT(a.OpposingAccountCodes, CHARINDEX('|', a.OpposingAccountCodes) - 1)  
        ELSE   
            a.OpposingAccountCodes  
    END AS code,  
  LEFT(a.OpposingAccountNames, 4)  AS codename,  
    --a.OpposingAccountNames,  
    b.org,      
    --b.BusinessDate,
        c.name,
        d.Abstracts ,
 d.accountdisplayname,
    e.segment6,
    b.DocNo as fullname,
    b.voucherdisplaycode
        
FROM   gl_entry a  
LEFT JOIN   GL_Voucher b ON a.Voucher = b.id  
left join Base_Organization_Trl c on b.org=c.id
left join GL_Entry_Trl d on a.id=d.id
left join CBO_Account e on a.account = e.id

WHERE   1=1
and b.VoucherSourceMethod!=9 and  b.VoucherStatus!=0  --排除期初和草稿凭证
    and FORMAT(b.BusinessDate, 'yyyy-MM') = '2024-06' 
        --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') <= '2024-06-30'
        AND a.iserror=0
        and e.segment6 !='0'
        --and   a.projectcode is not null
    and a.OpposingAccountCodes LIKE '5101%'  
    ),
        U9CMO AS (
        SELECT
                MO_MO.BusinessDate,
                MO_MO.ID,
                MO_MO.DocNO,
                MO_MO.BOMMaster,
                DATEPART( yy, FICloseDate ) AS MO_MOYear,
                FORMAT ( FICloseDate, 'MM' ) AS MO_MOMonth,
                CBO_ItemMaster.code as liaohao,
                CBO_ItemMaster.name  as mingcheng ,
                CBO_ItemMaster.specs as  guige,
                BM.BOMVersionCode,
                CBO_Project.code AS projectname,
                CBO_Project_trl.name as jiancheng
            FROM
                MO_MO
                LEFT JOIN CBO_ItemMaster ON MO_MO.ItemMaster= CBO_ItemMaster.ID
                LEFT JOIN CBO_BOMMaster BM ON MO_MO.BOMMaster= BM.ID
                LEFT JOIN CBO_Project ON MO_MO.Project=CBO_Project.ID
                left join CBO_Project_trl on CBO_Project.id=CBO_Project_trl.id
        where 1=1
        and FORMAT(MO_MO.BusinessDate, 'yyyy-MM')='2024-06'
        AND CBO_Project.code IS NOT NULL
        )
        select  a.*,b.docno,b.liaohao,b.mingcheng,b.guige,b.projectname,b.jiancheng from u9c5101 a left join U9CMO b on a.segment6=b.projectname

科目余额表

--科目余额表
with qichu as (
select t1.*,
t1.qichujie+t1.fashengjie as qimojie,
t1.qichudai+t1.fashengdai as qimodai,
t1.beginmoney+t1.fasheng as qimoyue
from (
select LEFT(b.code, CHARINDEX('|', b.code) - 1) as code,
LEFT(f.Displayname, CHARINDEX('|', f.Displayname) - 1) AS codename,  
e.direction,
g.displayname as year_month,
g.year,g.code as month,
h.name as company,
sum(a.BalanceValue_BeginBalanceDr) as qichujie,
sum(a.BalanceValue_BeginBalanceCr) as qichudai,
sum(
case when e.Direction=0 
then (a.BalanceValue_BeginBalanceDr-a.BalanceValue_BeginBalanceCr)
else (a.BalanceValue_BeginBalanceCr-a.BalanceValue_BeginBalanceDr) end 
) as beginmoney,
sum(a.BalanceValue_PeriodNetDr) as fashengjie,
sum(a.BalanceValue_PeriodNetCr) as fashengdai,
sum(
case when e.Direction=0 
then (a.BalanceValue_PeriodNetDr-a.BalanceValue_PeriodNetCr)
else (a.BalanceValue_PeriodNetCr-a.BalanceValue_PeriodNetDr) end 
) as fasheng

from GL_GeneralLedger a
inner join Base_SetofBooks a1 on a1.ID=a.AccessKey_SOB
inner join CBO_Account b on b.id=a.AccessKey_Account
--inner join MANA_AssetLiabilitys d on d.SubjectAttribute=b.AccountProperty
inner join CBO_AccountProperty e on e.id=b.AccountProperty
inner join CBO_Account_trl f on b.id=f.id
inner join Base_SOBAccountingPeriod g on a.AccessKey_PostPeriod= g.id
inner join Base_Organization_trl h on b.org= h.id
where a1.Code=102  and a.AccessKey_Currency=1
--and g.displayname in ('2024-06')
and a.AccessKey_IsSumLowLevel=0 
--AND B.CODE='1001|0|0|0|0|0|0|0|0|0|0|0|0'
--and d.SubjectAttribute=@AccountAttribute and d.AssetLiability=@AssetReportItem
group by LEFT(b.code, CHARINDEX('|', b.code) - 1) ,
LEFT(f.Displayname, CHARINDEX('|', f.displayname) - 1) ,
g.displayname ,
g.year,g.code ,
h.name ,
e.direction
) t1 
)
select * from qichu where year_month =  CONVERT(VARCHAR(7), '2024-10-01', 120)

现金表

现金 银行存款 票据(银行承兑 商业承兑)
作用是与NC底层表逻辑一致,方便后续做表

--发生额
with uccashflow as (
SELECT   
    a.AccountedDr,  
    a.AccountedCr, 
        e.segment1 as code ,
        left(e.segment1  ,4) as tcode,
        f.displayname,
        left(f.displayname  ,4) as tcodename,
    --a.OpposingAccountNames,  
    b.org,      
    b.BusinessDate,
        c.name,
        d.Abstracts 
FROM   gl_entry a  
LEFT JOIN   GL_Voucher b ON a.Voucher = b.id  
left join Base_Organization_Trl c on b.org=c.id
left join GL_Entry_Trl d on a.id=d.id
left join CBO_Account e on a.Account=e.id
left join CBO_Account_Trl f on e.id=f.id
WHERE   1=1
and b.VoucherSourceMethod!=9 and  b.VoucherStatus!=0  --排除期初和草稿凭证
    and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        and FORMAT(b.BusinessDate, 'yyyy-MM-dd') < '2024-11-20'
        AND a.iserror=0
        and LEFT(e.Segment1,4) IN('1001','1002','1121')
    ),
-- 期初额
qichu as (
select t1.*,
t1.qichujie+t1.fashengjie as qimojie,
t1.qichudai+t1.fashengdai as qimodai,
t1.beginmoney+t1.fasheng as qimoyue
from (
select LEFT(b.code, CHARINDEX('|', b.code) - 1) as code,
LEFT(b.code, 4) as Tcode,
LEFT(f.Displayname, CHARINDEX('|', f.Displayname) - 1) AS codename,  
LEFT(f.Displayname, 4) AS tcodename,
e.direction,
g.displayname as year_month,
g.year,g.code as month,
h.name as company,
sum(a.BalanceValue_BeginBalanceDr) as qichujie,
sum(a.BalanceValue_BeginBalanceCr) as qichudai,
sum(
case when e.Direction=0 
then (a.BalanceValue_BeginBalanceDr-a.BalanceValue_BeginBalanceCr)
else (a.BalanceValue_BeginBalanceCr-a.BalanceValue_BeginBalanceDr) end 
) as beginmoney,
sum(a.BalanceValue_PeriodNetDr) as fashengjie,
sum(a.BalanceValue_PeriodNetCr) as fashengdai,
sum(
case when e.Direction=0 
then (a.BalanceValue_PeriodNetDr-a.BalanceValue_PeriodNetCr)
else (a.BalanceValue_PeriodNetCr-a.BalanceValue_PeriodNetDr) end 
) as fasheng

from GL_GeneralLedger a
inner join Base_SetofBooks a1 on a1.ID=a.AccessKey_SOB
inner join CBO_Account b on b.id=a.AccessKey_Account
--inner join MANA_AssetLiabilitys d on d.SubjectAttribute=b.AccountProperty
inner join CBO_AccountProperty e on e.id=b.AccountProperty
inner join CBO_Account_trl f on b.id=f.id
inner join Base_SOBAccountingPeriod g on a.AccessKey_PostPeriod= g.id
inner join Base_Organization_trl h on b.org= h.id
where a1.Code=102  and a.AccessKey_Currency=1
--and g.displayname in ('2024-06')
and a.AccessKey_IsSumLowLevel=0 
--AND B.CODE='1001|0|0|0|0|0|0|0|0|0|0|0|0'
--and d.SubjectAttribute=@AccountAttribute and d.AssetLiability=@AssetReportItem
group by LEFT(b.code, CHARINDEX('|', b.code) - 1) ,
LEFT(b.code, 4) ,
LEFT(f.Displayname, CHARINDEX('|', f.displayname) - 1) ,
LEFT(f.Displayname, 4),
g.displayname ,
g.year,g.code ,
h.name ,
e.direction
) t1
where t1.tcode in('1001','1002','1121')
)
-----------------------------------------------------------
select sum(a.余额) as 余额,a.TCODENAME,a.COMPANYNAME from 
(
SELECT 
    SUM(accountedcr) AS 贷,
    SUM(accounteddr) AS 借,
    SUM(accounteddr) - SUM(accountedcr) AS 余额,
    tcodename,
    tcode,
        name as companyname,
        '发生额' as leixing
FROM 
    uccashflow
GROUP BY 
    tcodename,
    tcode,
        name
UNION ALL
SELECT 
    qichudai AS 贷,
    qichujie AS 借,
    beginmoney AS 余额,
    tcodename,
    tcode,
        company as companyname,
        '年初额' as leixing
FROM 
    qichu
WHERE 1=1
    and year_month = CONVERT(VARCHAR(7), '2024-01-01', 120)
        --and year_month = CAST(YEAR('${aaa}') AS VARCHAR(4)) + '-01'
    
) a
where 1=1 
and a.companyname in ('XXXXXX有限公司')--表中的公司
and   a.tcodename in ('库存现金')
group by a.tcodename,a.companyname

凭证表

用于制作财务相关表的发生额数据


SELECT   
    a.AccountedDr,  
    a.AccountedCr, 
        e.segment1 as code ,
        e.Balancedirection,
        left(e.segment1  ,4) as tcode,
        f.displayname,
         CASE 
        WHEN COALESCE(NULLIF(CHARINDEX('┆', f.displayname), 0), LEN(f.displayname) + 1) < 
             COALESCE(NULLIF(CHARINDEX('|', f.displayname), 0), LEN(f.displayname) + 1) THEN
            SUBSTRING(f.displayname, 1, CHARINDEX('┆', f.displayname) - 1)
        ELSE 
            SUBSTRING(f.displayname, 1, CHARINDEX('|', f.displayname) - 1)
    END AS tcodename,
        --left(f.displayname  ,4) as tcodename,
    --a.OpposingAccountNames,  
    b.org,      
    b.BusinessDate,
        c.name,
        d.Abstracts 
FROM   gl_entry a  
LEFT JOIN   GL_Voucher b ON a.Voucher = b.id  
left join Base_Organization_Trl c on b.org=c.id
left join GL_Entry_Trl d on a.id=d.id
left join CBO_Account e on a.Account=e.id
left join CBO_Account_Trl f on e.id=f.id
WHERE   1=1
and b.VoucherSourceMethod!=9 and  b.VoucherStatus!=0  --排除期初和草稿凭证
    --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') >= '2024-06-01' 
        --and FORMAT(b.BusinessDate, 'yyyy-MM-dd') <= '2024-11-30'
        AND a.iserror=0
        --and LEFT(e.Segment1,4) IN('1001','1002','1121')

采购入库收货

用于采购降本调取U9C采购入库价格。

select 
f.name,
a.CreatedOn as 创建时间,
b.DocNo as 收货单号,
b.Supplier_Code as 供应商编号,
d.Name as 供应商名称,
a.DocLineNo as 收货单行号,
a.ItemInfo_ItemCode as 物料编码,
a.ItemInfo_ItemName as 物料名称,
e.SPECS as 规格型号,
c.Name as 仓库,
a.RcvQtyCU as 入库数量,
g.name as 单位,
a.FinallyPriceTC as 含税价,
a.TotalMnyAC as 含税金额,
a.ConfirmDate as 入库确认日期,
a.SrcPO_SrcDocNo as 采购订单号,
a.SrcPO_SrcDocLineNo as 采购订单行号,
a.Status as 状态
from PM_RcvLine a
left join PM_Receivement b on a.Receivement=b.ID
left  join CBO_Wh_Trl c on a.Wh=c.ID
left  join CBO_Supplier_Trl d on b.Supplier_Supplier=d.ID
left join CBO_ItemMaster e  ON a.ItemInfo_ItemID=e.id
left join Base_Organization_Trl f on a.CurrentOrg=f.id
left join Base_UOM_trl g on a.StoreUOM=g.id
where a.Status=5 and a.SrcDocType=1


生产订单关联领料单情况

主要用于查询当月已下达订单,已发料,但未入库的在制品情况

SELECT
    DATEPART(yy, f.BusinessDate) AS MO_MOYear,FORMAT(f.BusinessDate, 'MM') AS MO_MOMonth,
    --a.Org,
    b.name as 公司,
    h.code as 生产订单料品编码,
    h.code2 as 生产订单NC料号,
    h.name as 生产订单料品名称,
    h.SPECS as 生产订单规格,
    h.code1 as 生产订单图号,
    d.mo as     生产订单,
    f.docno as 生产订单号,
    f.ProductQty as 生产订单数量,
    --f.DocState as 生产订单状态,
        case 
        when f.DocState = 0 then '开立'
        when f.DocState = 1 then '已核准'
        when f.DocState = 2 then '开工'
        when f.DocState = 3 then '完工'
        when f.DocState = 4 then '核准中'
    end as 生产订单状态,
    --f.MODocType as 单据类型,
    g.name as 生产订单单据类型,
    a.BusinessDate as 领料日期,
    a.DocState as 状态码,
    case 
        when a.DocState = 0 then '开立'
        when a.DocState = 1 then '已核准'
        when a.DocState = 2 then '关闭'
        when a.DocState = 3 then '核准中'
    end as 领料状态,
    c.name as 单据类型,
    --d.item as 料品,
    e.code as 领料单料品编码,
    e.code2 as 领料单NC料号,
    e.name as 领料单料品名称,
    e.SPECS as 领料单规格,
    e.code1 as 领料单图号,
    d.IssuedQty as 实发数量,
    d.CostAmt as 金额
    
FROM
    MO_IssueDoc a
    INNER JOIN Base_Organization_trl b ON a.org= b.id 
    INNER JOIN MO_IssueDocType_Trl c on a.IssueDocType = c.id
    right join mo_issuedocline d on a.id = d.IssueDoc
    LEFT JOIN CBO_ItemMaster e  ON d.item=e.ID
    left join MO_MO f on d.MO = f.id
    left join MO_MODocType_trl g on f.MODocType=g.id 
    left join CBO_ItemMaster h on f.itemmaster= h.id
WHERE 1=1
    --a.DocState!=2
    and c.SysMLFlag='zh-CN'
    and g.SysMLFlag='zh-CN'
    and f.DocState !=3
    and a.DocState =  2


人资

期初员工数据


select t1.* from (
SELECT
    --person.email,
    CONVERT ( VARCHAR ( 100 ), b.AssgnBeginDate, 23 ) AS 开始时间,
    --CONVERT ( VARCHAR ( 100 ), b.AssgnEndDate, 23 ) as 结束时间,
    CASE 
    WHEN b.AssgnEndDate IS NULL THEN FORMAT(EOMONTH(GETDATE()), 'yyyy-MM-dd')
    ELSE CONVERT ( VARCHAR ( 100 ), b.AssgnEndDate, 23 ) 
END AS 结束时间,
    --b.AssgnEndDate,
    --a.OwnerOrg AS org_id,
    e.name as 人资组织,
    --a.Dept AS dept_id,
    d.name as 部门,
    b.PositionStatus AS 是否在岗,
    a.Person AS staff_id,
    a.ID AS objid,
    a.EmployeeCode AS 员工号,
    a.Name AS 人员,
    a.EndPositionActive 是否结束,
    b.AssignActive,
    b.ismain AS 最新记录 
FROM
    CBO_EmployeeArchive a
    -- 任职记录表
    JOIN CBO_EmployeeAssignment b ON a.ID= b.Employee
    -- 人员信息表
    JOIN CBO_Person person ON person.ID= a.Person 
    left join CBO_Department_Trl d on a.dept= d.id
    left join Base_Organization_Trl e on a.OwnerOrg = e.id
    
WHERE 1=1
    and b.IsMain= 1 
    AND a.Dept>0 
    --and (b.AssignActive=4 or b.AssignActive=-1)    --  任职活动 4   入职  10 内部调动 11 跨组织调动 -- 结束任职活动 EndAssignActive
-- 离职 0 辞退 2 离退休 3 
) t1
where 1=1 
 AND 开始时间 <= EOMONTH(DATEADD(MONTH, -1, '2025-01-01'))
 AND 结束时间 >= EOMONTH(DATEADD(MONTH, -1, '2025-01-01'))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容