Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在SAP B1中创建自定义损益报告的查询_Sql_Crystal Reports 2008 - Fatal编程技术网

Sql 在SAP B1中创建自定义损益报告的查询

Sql 在SAP B1中创建自定义损益报告的查询,sql,crystal-reports-2008,Sql,Crystal Reports 2008,我正在尝试使用crystal reports创建自定义损益表。我正在使用以前的一组sql脚本来修改它们以满足我的需要。 我使用2个视图、一个函数和一个存储过程来实现这一点。(代码有点长) 大众汽车交易 USE [EUROPA_PROD_DB] GO /****** Object: View [dbo].[vw_Transactions] Script Date: 05/04/2012 12:51:24 ******/ SET ANSI_NULLS ON GO SET QUOTED_I

我正在尝试使用crystal reports创建自定义损益表。我正在使用以前的一组sql脚本来修改它们以满足我的需要。 我使用2个视图、一个函数和一个存储过程来实现这一点。(代码有点长)

大众汽车交易

USE [EUROPA_PROD_DB]
GO

/****** Object:  View [dbo].[vw_Transactions]    Script Date: 05/04/2012 12:51:24 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[vw_Transactions] AS
SELECT 
TA.AcctCode,TA.AcctName,TA.GroupMask,TA.Levels,TA.ActType,TA.L1Parent,TA.L2Parent,
TA.L3Parent,TA.L4Parent,
TH.TransId,TH.TransType,TH.RefDate PostingDate,TH.DueDate,
TH.TaxDate,TD.Account,TD.Debit,TD.Credit
FROM OJDT TH
INNER JOIN JDT1 TD ON TH.TransId=TD.TransId
INNER JOIN vw_AccountDetails TA ON TD.Account=TA.AcctCode

GO
上图中的示例结果

vw_AccountDetails-此视图使我能够获得上图中所示的各个级别(即父级)。列GroupMask引用以下内容:

1 - assets
2 - liabilities
4 - turnover
5 - Cost of sales
6 - operating costs.
fn\u客户利润和亏损-功能

ALTER FUNCTION fn_CustomProfit_And_Loss
(
    @BeginDate DATETIME,
    @EndDate DATETIME
)
RETURNS @table TABLE(
    L1Parent VARCHAR(72),
    L2Parent VARCHAR(72),
    Balance MONEY,
    RowOrder INT
)
AS
BEGIN
SET @BeginDate=CAST(YEAR(@BeginDate) AS CHAR(4))+'-'+CAST(MONTH(@BeginDate) AS CHAR(2)) +'-'+ CAST(DAY(@BeginDate) AS CHAR(2))
SET @EndDate=CAST(YEAR(@EndDate) AS CHAR(4))+'-'+CAST(MONTH(@EndDate) AS CHAR(2)) +'-'+ CAST(DAY(@EndDate) AS CHAR(2))

INSERT INTO @table
SELECT 
CASE L1Parent WHEN 'Turnover' THEN 'Income' ELSE L1Parent END L1Parent,
L2Parent,
SUM(Credit-Debit) Balance,
1 RowOrder
FROM vw_Transactions
WHERE GroupMask=4--Income
AND PostingDate BETWEEN @BeginDate AND @EndDate
GROUP BY L1Parent,L2Parent

UNION ALL
SELECT 
CASE L1Parent WHEN 'Cost of Sales' THEN 'Cost Of Goods Sold' ELSE L1Parent END L1Parent,
L2Parent,
SUM(Debit-Credit) Balance,
2 RowOrder
FROM vw_Transactions
WHERE GroupMask=5--COGS
AND PostingDate BETWEEN @BeginDate AND @EndDate
GROUP BY L1Parent,L2Parent

UNION ALL

SELECT 
CASE L1Parent WHEN 'Operating Costs' THEN 'Expenses' ELSE L1Parent END L1Parent,
L2Parent,
SUM(Debit-Credit) Balance,
3 RowOrder
FROM vw_Transactions
WHERE GroupMask IN(6)--Expenses
AND PostingDate BETWEEN @BeginDate AND @EndDate
GROUP BY L1Parent,L2Parent

RETURN
END
sp_客户利润和亏损-存储过程

CREATE PROCEDURE sp_CustomProfit_And_Loss
(
    @BeginDate DATETIME,
    @EndDate DATETIME
)
AS
BEGIN
    SELECT L1Parent,L2Parent,Balance,RowOrder
    FROM fn_CustomProfit_And_Loss(@BeginDate,@EndDate)
    order by RowOrder

END
我基本上需要的是有一个按部门分组的损益表。i、 e

                          BRANDING1       BRANDING2      PROMOS 

 Sales-Gross Revenue    18237            121143          91092

 COST OF SALES          
 Direct Purchases          
 Labour                    
 KEBS Levy              
 Marketing               
 Packaging Materials     
 Clearing                    
 Car hire and transport     
 Licence Local Authority 
 Courier freight & postage  
 Travel and Accomodation    
     -       -   

如何修改SQL语句以使损益语句按部门分组?感谢您的帮助。

这也是一个非常冗长和令人困惑的问题

我将尽我所能提供解决方案

  • 您有两个视图和一些填充这些视图的过程,因此在CR中链接这些视图
  • 如果栏位可用,则根据总收入分组,并将栏位放置为品牌栏…等,并计算CR中可用选项的总和
  • 如果您在报告中查看,则上述解决方案有效


    如果您的要求有所不同,请告诉我,我会尽力帮助您的。这也是一个非常冗长和令人困惑的问题

    我将尽我所能提供解决方案

  • 您有两个视图和一些填充这些视图的过程,因此在CR中链接这些视图
  • 如果栏位可用,则根据总收入分组,并将栏位放置为品牌栏…等,并计算CR中可用选项的总和
  • 如果您在报告中查看,则上述解决方案有效

    如果您的要求有所不同,请告诉我,我会尽力帮助您