获取所有款项

2020-08-21 14:39发布

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

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


先生,我需要

的总和

销售订单

交货单

应收发票

收款

针对特定客户并在日期范围内

为此,我有以下代码

选择T0。" CardCode",max(T0。" CardName")作为参与者,
 总和(T0。" DocTotal")为sale_order_sum,
 sum(T1。" DocTotal")作为delivery_sum,
 sum(T2。" DocTotal")作为invoice_sum,
 总和(T3。"现金总和")作为ORDR T0中的入库付款_总和
 左联接ODLN T1 ON T0。" CardCode" = T1。" CardCode"
 左联接OINV T2在T0上。" CardCode" = T2。" CardCode"
 在T0上左联接ORCT T3。" CardCode" = T3。" CardCode"
 在T0。" CardCode" ='C2402115'
 AND T0。" DocDate"介于" 2020-03-01"和" 2020-03-07"之间
 AND T0。" CANCELED" ='N'GROUP BY T0。" CardCode"

 

查询运行没有任何错误,但是显示了错误的结果。

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

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


先生,我需要

的总和

销售订单

交货单

应收发票

收款

针对特定客户并在日期范围内

为此,我有以下代码

选择T0。" CardCode",max(T0。" CardName")作为参与者,
 总和(T0。" DocTotal")为sale_order_sum,
 sum(T1。" DocTotal")作为delivery_sum,
 sum(T2。" DocTotal")作为invoice_sum,
 总和(T3。"现金总和")作为ORDR T0中的入库付款_总和
 左联接ODLN T1 ON T0。" CardCode" = T1。" CardCode"
 左联接OINV T2在T0上。" CardCode" = T2。" CardCode"
 在T0上左联接ORCT T3。" CardCode" = T3。" CardCode"
 在T0。" CardCode" ='C2402115'
 AND T0。" DocDate"介于" 2020-03-01"和" 2020-03-07"之间
 AND T0。" CANCELED" ='N'GROUP BY T0。" CardCode"

 

查询运行没有任何错误,但是显示了错误的结果。

付费偷看设置
发送
13条回答
悻福寶寶
1楼 · 2020-08-21 15:15.采纳回答

尊敬的Tariq

在上面的查询中,您使用了UNION ALL-不会删除重复项。 删除该unionall并仅使用union并尝试,如果无法解决,则

因此我们可以将该查询修改为子查询,然后选择最终查询,如下所示:

在此查询中,我 仅添加了发票和交货,其余可以添加

SUBQ =底部查询

从CARDCODE,NAME,SUM(INV_PAY),SUM(DEL_PAY)选择*
 从
     (
       选择T0。" CardCode" AS" CardCode",最大值(T0。" CardName")AS" Name",
                sum(T0。" DocTotal")AS" inv_pay",0作为" del_pay"
       从Ordr T0
       在T0。" CardCode" ='C2402115'
        AND T0。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
       按T0分组。" CardCode"
       联盟
       选择T1。" CardCode" AS" CardCode",最大值(T1。" CardName")AS"名称",
             0为" inv_pay",sum(T1。" DocTotal")AS为" del_pay"
       从Odln T1
       在T1。" CardCode" ='C2402115'
       和T1。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
       按" CardCode"分组
     )作为" SUBQ"
 通过" CardCode"订购
 按名称分组
 
DafaDDDa
2楼-- · 2020-08-21 15:33

您好

如果您能说出什么地方错了,那么您期望得到什么?

灬番茄
3楼-- · 2020-08-21 15:24

亲爱的塔里克,

在单个查询中,您没有比较canceled ='N'。 无论如何,请使用内部联接而不是如下所示的左联接

 SELECT T0。" CardCode",max(T0。" CardName")作为聚会,
 总和(T0。" DocTotal")为sale_order_sum,
 sum(T1。" DocTotal")作为delivery_sum,
 sum(T2。" DocTotal")作为invoice_sum,
 总和(T3。"现金总和")作为ORDR T0中的入库付款_总和
 内联接ODLN T1接通T0。" CardCode" = T1。" CardCode"
 T2上的INNER JOIN OINV T2。" CardCode" = T2。" CardCode"
 T0上的内部联接ORCT T3。" CardCode" = T3。" CardCode"
 在T0。" CardCode" ='C2402115'
 AND T0。" DocDate"介于" 2020-03-01"和" 2020-03-07"之间
 AND T0。" CANCELED" ='N'GROUP BY T0。" CardCode"
 
黑丝骑士
4楼-- · 2020-08-21 15:39

尝试删除括号

您是否也尝试使用union-在上一个查询中(删除uion all并仅放置union)

大道至简
5楼-- · 2020-08-21 15:41

尊敬的Tariq,请按以下所示尝试并集:

选择T0。" CardCode" AS" Numb",最大值(T0。" CardName")AS" Name",sum(T0。" DocTotal")AS  "录制",0、0
 从Ordr T0
 在T0。" CardCode" ='C2402115'
 AND T0。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T0分组。" CardCode"
 按T0排序。" CardCode"

 联盟

 选择T1。" CardCode" AS"数字",最大值(T0。" CardName")AS"名称",0,总和(T1。" DocTotal")AS"记录"
 从Odln T1
 在T1。" CardCode" ='C2402115'
 和T1。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T1分组。" CardCode"
 T1的订单。" CardCode"

 联盟

 SELECT T2。" CardCode" AS"数字",最大值(T0。" CardName")AS"名称",0,0,sum(T2。" DocTotal")AS" Recd"
 从OINV T2
 在T2。" CardCode" ='C2402115'
 和T2。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T2分组。" CardCode"
 T2的订单。" CardCode"

 联盟

 SELECT T3。" CardCode" AS"数字",最大值(T0。" CardName")AS"名称",0,0,0,sum(T3。" DocTotal")AS" Recd"
 从ORCT T3
 在T3。" CardCode" ='C2402115'
 和T3。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T3分组。" CardCode"
 T3的订单。" CardCode"
 
Cikesha
6楼-- · 2020-08-21 15:36

哦,抱歉,删除

的订单并仅在最后一次查询时放置订单

木偶小白
7楼-- · 2020-08-21 15:33

先生,这是金额的比较

我需要实际金额

以下是显示实际金额的单独查询

销售订单

选择
 T0。" CardCode" AS" Numb",
 max(T0。" CardName")AS" Name",
 sum(T0。" DocTotal")AS" Recd"
 从Ordr T0
 在T0。" CardCode" ='C2402115'
 AND T0。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T0分组。" CardCode"
 按T0排序。" CardCode"

 

交货单

选择
 T0。" CardCode" AS" Numb",
 max(T0。" CardName")AS" Name",
 sum(T0。" DocTotal")AS" Recd"
 从Odln T0
 在T0。" CardCode" ='C2402115'
 AND T0。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T0分组。" CardCode"
 按T0排序。" CardCode"
 

应收发票

选择
 T0。" CardCode" AS" Numb",
 max(T0。" CardName")AS" Name",
 sum(T0。" DocTotal")AS" Recd"
 从OINV T0
 在T0。" CardCode" ='C2402115'
 AND T0。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T0分组。" CardCode"
 按T0排序。" CardCode"
 

收款

选择
 T0。" CardCode" AS" Numb",
 max(T0。" CardName")AS" Name",
 sum(T0。" DocTotal")AS" Recd"
 从OINV T0
 在T0。" CardCode" ='C2402115'
 AND T0。" 2020-03-01"和" 2020-03-07"之间的" DocDate"
 按T0分组。" CardCode"
 按T0排序。" CardCode"
 

请帮助我加入以上所有查询

一周热门 更多>