销售订单查询

2020-09-10 07:42发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

需要在SAP B1中查询以发货日期为基础来查找一个月的总销售额(因为试图从04/01/2019-03/31/2020中获取数字),

我需要查看销售订单行的总数是Open,

已关闭的销售订单行总数。

如果已关闭销售订单行(已交货并已开票),且开票日期不在此日期,则从此查询中删除销售订单行。

如果销售订单行已附加交货但未开具发票,请在其他查询中使用它。

让我知道这是否有意义

我要在这里实现的目标是,试图找出当月某个特定客户的销售额,如果我们要达到或不达到目标,我可以很容易地得出这些数字 编写带有未清销售订单行的查询,但是我需要排除销售订单行是否已交付和开票以及是否超出了这些日期,但如果它们在这些日期范围内,则要包括在内。

亲切的问候,

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

需要在SAP B1中查询以发货日期为基础来查找一个月的总销售额(因为试图从04/01/2019-03/31/2020中获取数字),

我需要查看销售订单行的总数是Open,

已关闭的销售订单行总数。

如果已关闭销售订单行(已交货并已开票),且开票日期不在此日期,则从此查询中删除销售订单行。

如果销售订单行已附加交货但未开具发票,请在其他查询中使用它。

让我知道这是否有意义

我要在这里实现的目标是,试图找出当月某个特定客户的销售额,如果我们要达到或不达到目标,我可以很容易地得出这些数字 编写带有未清销售订单行的查询,但是我需要排除销售订单行是否已交付和开票以及是否超出了这些日期,但如果它们在这些日期范围内,则要包括在内。

亲切的问候,

付费偷看设置
发送
4条回答
太Q了
1楼-- · 2020-09-10 08:04

嗨,阿米特,

我不确定您的查询没有给您带来什么,但是也许此版本可以提供,或者可能会更容易发现问题:

  SELECT T1。[线的类型]
      ,T0.DocNum
      ,T0.CardCode
      ,T0.CardName
      ,T1.LineNum
      ,t1.LineStatus
      ,T1.Itemcode
      ,T1。总
      ,T1。发货日期
      ,T1。数量
      ,T1.DelivrdQty
      ,(SELECT SUM(s0.Quantity)
 FROM DLN1 s0 with(nolock)
 s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'发货数量'
      ,(SELECT SUM(s0.LineTotal)
 FROM DLN1 s0 with(nolock)
 s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'总行总交付量'
 ,(SELECT SUM(s1.Quantity)
 FROM DLN1 s0 with(nolock)
 使用s1.BaseEntry = s0.DocEntry和s1.BaseLine = s0.LineNum上的(nolock)左联接INV1 s1
 s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'已发货并已开票的数量'
 ,(SELECT SUM(s1.LineTotal)
 FROM DLN1 s0 with(nolock)
 使用s1.BaseEntry = s0.DocEntry和s1.BaseLine = s0.LineNum上的(nolock)左联接INV1 s1
 s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'总发票金额'
 从ORDR T0与(nolock)
      内部联接
 (选择CAST("打开但未发货" AS NVARCHAR(50)作为[线路类型],*
       来自RDR1 with(nolock)
 其中LineStatus ='O'并且DelivrdQty = 0
 全部合并
 选择CAST("订单已关闭且未发货" AS NVARCHAR(50))作为[线路类型],*
       来自RDR1 with(nolock)
 其中LineStatus ='C'并且DelivrdQty = 0
 全部合并
 选择CAST("未开具部分交货单" AS NVARCHAR(50))作为[线路类型],*
       来自RDR1 x with(nolock)
 其中x.LineStatus ='O'AND x.DelivrdQty> 0 AND(SELECT SUM(s1.Quantity)
 FROM DLN1 s0 with(nolock)
 使用s1.BaseEntry = s0.DocEntry和s1.BaseLine = s0.LineNum上的(nolock)左联接INV1 s1
 s0.BaseEntry = x.DocEntry和s0.BaseLine = x.LineNum)为NULL)T1 ON T0.DocEntry = T1.DocEntry
 T1。[ShipDate]在'04 -01-2019'和'03 -31-2020'之间
 按DocNum订购
 

问候,

Johan

木偶小白
2楼-- · 2020-09-10 08:07

Hi Johan,

请找到查询

不确定这是否有意义。


我编写的查询是SELECT T0.DocNum,T0.CardCode,T0.CardName,t1.LineNum,t1.LineStatus,T1.Itemcode,T1.Linetotal,T1.Shipdate,T1.Quantity,T1 .DelivrdQty,(从(无锁)的DLN1 s0中选择SELECT SUM(s0.Quantity),其中s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'出货数量',(从DLN1选择SELECT SUM(s0.LineTotal) s0 with(nolock)WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)'总行总交付量',(SELECT SUM(s1.Quantity)from DLN1 s0 with(nolock)LEFT JOIN INV1 s1 with( nolock)on s1.BaseEntry = s0.DocEntry AND s1.BaseLine = s0.LineNum WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)'出货数量',(从DLN1选择SELECT SUM(s1.LineTotal) s0 with(nolock)左联接INV1 s1 with(nolock)在s1.BaseEntry = s0.DocEntry和s1.BaseLine = s0.LineNum WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)'总和 交货"-已关闭但未发货的订单-未发货未开票的订单-已发货但未发货的订单 iced-从ORDR T0发货并开票的订单内联接RDR1 T1在T0.DocEntry = T1.DocEntry-左联接DLN1 T2且(nolock)在T2.BaseEntry = T1.DocEntry和T2.BaseLine = T1.LineNum 。[ShipDate]在'04 -01-2019'和'03 -31-2020'之间

太Q了
3楼-- · 2020-09-10 08:02

亲爱的阿米特(Amit Jha)

请在代码块中证明查询,因为这里有注释掉的区域并且不清楚注释掉了什么。 这将使我们更轻松地为您提供帮助!

此致

Varnavas Eleftheriou

小灯塔
4楼-- · 2020-09-10 08:23

嗨,这是我写的完整查询:

选择T0.DocNum,T0.CardCode,T0.CardName,T1.LineNum,t1.LineStatus,T1.Itemcode,T1.Linetotal,T1.Shipdate,T1.Quantity,T1.DelivrdQty,(SELECT SUM(s0。 数量)来自DLN1 s0(带有(nolock)WHERE s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'已发货的数量',(SELECT SUM(s0.LineTotal)来自DLN1 s0带有(nolock)WHERE s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'总行总交付量',(SELECT SUM(s1.Quantity)从DLN1 s0带有(nolock)左联接INV1 s1带有(nolock)于s1.BaseEntry = s0。 DocEntry AND s1.BaseLine = s0.LineNum WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)'已发货并已开票数量',(SELECT SUM(s1.LineTotal)从DLN1 s0与(无锁)左联接 INV1 s1(在s1.BaseEntry = s0.DocEntry和s1.BaseLine = s0.LineNum上具有(nolock))在s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)'总发票额',当T1.LineStatus时为CASE ='O'AND T1.DelivrdQty = 0然后t1.LineTotal END'打开但未发货',以T1.Linesta为例 tus ='C'AND T1.DelivrdQty = 0然后(从带有(nolock)的DLN1 s0中选择SUM(s0.LineTotal)WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)ELSE 0 END'关闭订单 T1.LineStatus ='O'并且T1.DelivrdQty> 0 AND(并且从DLN1 s0中选择(和(s1.Quantity))与(nolock)左连接INV1 s1在(s1.BaseEntry = s0上具有(nolock) .DocEntry AND s1.BaseLine = s0.LineNum WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)为NULL(然后从DLN1 s0中选择SELECT SUM(s0.LineTotal)with(nolock)WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)ELSE 0 END当T1.LineStatus ='C'AND T1.DelivrdQty> 0 AND(从(和)中选择DLN1 s0的(SELECT SUM(s1.Quantity) nolock)在s1.BaseEntry = s0.DocEntry和s1.BaseLine = s0.LineNum的情况下向左插入INV1 s1,其中s0.BaseEntry = T1.DocEntry和s0.BaseLine = T1.LineNum)为NULL(然后选择SELECT SUM( s0.LineTotal)来自DLN1 s0 with(nolock)WHERE s0.BaseEntry = T1.DocEntry AND s0.BaseLine = T1.LineNum)其他0结束'未开具部分交货单'来自ORDR T0,带有(nolock)内连接RDR1 T1,带有(nolock)ON T0.DocEntry = T1.DocEntry,T1。[ShipDate],介于'04 -01-2019之间 '和'03 -31-2020'

不给我我想要的东西:

我想要的是:

1。 销售订单行(如果未打开且未交付)

2。销售订单行已关闭,已交付并已开具发票

3。 销售订单行(如果已关闭但未交付)

3个销售订单行已打开并已交付但没有发票

亲切的问候

一周热门 更多>