0

我有两个订单文件,标题记录 (MRRECVH) 和详细记录 (MRRECVD)。

为了查看订单总金额,我需要汇总 MRRECVD 文件中 Control# 所在的所有行项目(两个文件通用且订单唯一)。我只想查看总订单金额 > 0 的 MRECVH 记录。

这是我所拥有的(不起作用):

    USE ZZZ

    SELECT a.NAME, a.RECV_DATE,
      ( SELECT SUM(b.RECV_AMOUNT)
        FROM MRRECVD b
        WHERE ( a.CONTROL = b.CONTROL )
      ) AS 'TOTAMT'
    FROM MRRECVH a
    GROUP BY a.CONTROL
           , a.BANK
           , a.NAME
           , a.CHECK_NUM
           , a.RECV_DATE ;

这给了我一切,但我只想要总明细金额(b.RECV_AMOUNT 的总和)> 0 的记录

当我尝试在 WHERE 子句中聚合 SUM(b.RECV_AMOUNT) 时,出现错误。我也尝试了许多其他变体。我错过了什么?

4

1 回答 1

2

当您想在聚合字段上使用条件时,只需使用 HAVING 子句

顺便说一句,您可以像这样进行查询。

select a.Name, a.recv_Date, sum(b.recv_amount) as totalamt
from MRRECVH a
inner join mrrecvd b on a.control  = b.control
group by a.control, a.bank, a.name, a.check_num, a.recv_date
having sum(b.recv_amount) > 0
于 2013-10-10T19:29:51.640 回答