2013-10-10 58 views
0

我有兩個訂單文件,標題記錄(MRRECVH)和詳細記錄(MRRECVD)。新手SQL Server聚合查詢

爲了查看訂單總金額,我需要總結MRRECVD文件中控制號(這兩個文件都是共同的和訂單唯一的)的所有行項目。我只想看到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)時,我收到錯誤。我也嘗試了很多其他的變化。我錯過了什麼?

回答

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 
+0

賓果!而已!我正在瀏覽我的筆記,而我的班級尚未涵蓋有關條款(與此同時,我在現實生活中需要它)。 :) – GettingStrongerEveryDay

+0

tssss ...現實生活不等待學校結束。這不公平 ;) –