新手SQL Server聚合查询

时间:2013-10-10 19:27:05

标签: sql sql-server

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

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

这是我的(不起作用):

    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)时,我得到错误。我也尝试了很多其他的变化。我错过了什么?

1 个答案:

答案 0 :(得分: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