2012-12-11 49 views
2

我是一個新手,試圖通過這個工作,迄今沒有運氣,任何幫助,非常感謝!總和和不同不會改變結果?

Select Distinct 
    (AB.agency_no || '-' || ab.branch_no) AS "AGENCY-BRANCH", 
    count (AB.agency_no || '-' || ab.branch_no) AS Occurences, 
    A.AGY_NAME AS AGENCY, 
    Sum(AB.annual_premium) as Premium 
From Agency_Book_View AB, Agency A, Branch B 
Where AB.agency_no = A.Agency_No 
    AND B.EXPIRATION_DATE = TO_DATE('12-31-2078', 'MM-DD-YYYY') 
    AND B.EFFECTIVE_DATE <= sysdate and b.effective_date >=sysdate - 364 
Group by AB.agency_no || '-' || ab.branch_no, A.Agy_Name, ab.annual_premium 
Order by AB.agency_no || '-' || ab.branch_no 

因此,我試圖返回每個「代理分公司」的總年度保費,並且我得到了代理分公司的多次出現。我正在嘗試爲每個代理機構分行獲取一行。我希望這很清楚。我試圖包含一個結果集,但不允許在我的文章中包含圖片。

非常感謝!

布拉德

+1

我很確定你的查詢缺少一個JOIN的地方。 B表沒有與別的鏈接,這在這裏看起來不對。 –

回答

0

試試這個:

SELECT (AB.agency_no || '-' || AB.branch_no) AS "AGENCY-BRANCH", 
    COUNT(AB.agency_no || '-' || AB.branch_no) AS Occurences, 
    A.AGY_NAME AS AGENCY, 
    SUM(AB.annual_premium) AS Premium 
FROM Agency_Book_View AB, Agency A, Branch B 
WHERE AB.agency_no = A.Agency_No AND AB.branch_no = B.branch_no 
    AND B.EXPIRATION_DATE = TO_DATE('12-31-2078', 'MM-DD-YYYY') 
    AND B.EFFECTIVE_DATE <= SYSDATE AND B.effective_date >= SYSDATE - 364 
GROUP BY AB.agency_no || '-' || AB.branch_no, A.Agy_Name 
ORDER BY AB.agency_no || '-' || AB.branch_no 

我加入乙表和AB表,去掉了DISTINCT和分組方式,ab.annual_premium。

+0

非常感謝你,這是非常有幫助! – Brad

0

我認爲你需要by子句從組中刪除ab.annual_premium。