0

わかりました、昨日私は質問をし、素晴らしい答えを得ました。私はもっ​​と助けを求めて戻ってきました。

ここでの昨日の質問:昨日の質問 - Sum および Distinct 関数と関係がありました

-リンクは、このサイト内の別の質問へのリンクです

今日、返された各行の住所を結果に追加しています。問題は、住所を返すときに、人々が別の方法で入力したことがわかっていることです。123メインストリート。または 123 Main Street などです。問題は、上記のリンクで成功したように、最新のバージョンまたは上記の住所の 1 回の出現のみをプルして、保険料を合計することができるかどうかです。

これが私が持っているもので、機能していません:

Select (Agency_Book_View.agency_no || '-' || Agency_Book_View.branch_no) AS "AGENCY-BRANCH",
   Agency.Agy_Name,
   SUM(Agency_Book_View.annual_premium) AS Premium,
   Branch.Mail_Address1,
   Agency_Book_View.effective_date
  from Branch
  INNER JOIN Agency_Book_View
on Branch.Agency_No = Agency_book_view.agency_no 
    INNER JOIN Agency
on Branch.Agency_No = Agency.agency_no
 INNER JOIN Comp_Agy on Branch.Agency_No = comp_agy.agency_no 
WHERE COMP_AGY.expiration_date = TO_DATE('12-31-2078','MM-DD-YYYY')
Group by (Agency_Book_View.agency_no || '-' || Agency_Book_View.branch_no),
   Agency.Agy_Name,
   Branch.Mail_Address1,
   Agency_Book_View.Effective_Date
Order by (Agency_Book_View.agency_no || '-' || Agency_Book_View.branch_no)

結果

繰り返しますが、すべての助けに本当に感謝しています!!!

ブラッド

4

1 に答える 1

0

答えは次のようになっていると思います。

Select (Agency_Book_View.agency_no || '-' || Agency_Book_View.branch_no) AS "AGENCY-BRANCH",
       Agency.Agy_Name,
       SUM(Agency_Book_View.annual_premium) AS Premium,
       MAX(case when seqnum = 1 then Agency_Book_View.address end) as address,
       Branch.Mail_Address1,
       Agency_Book_View.effective_date
from Branch INNER JOIN
     (select *,
             ROW_NUMBER() over (partition by agency_no order by AddressDate desc) as seqnum
      from Agency_Book_View
     ) Agency_Book_View
     on Branch.Agency_No = Agency_book_view.agency_no INNER JOIN
     Agency
     on Branch.Agency_No = Agency.agency_no INNER JOIN
        Comp_Agy on Branch.Agency_No = comp_agy.agency_no 
WHERE COMP_AGY.expiration_date = TO_DATE('12-31-2078','MM-DD-YYYY')
Group by (Agency_Book_View.agency_no || '-' || Agency_Book_View.branch_no),
   Agency.Agy_Name,
   Branch.Mail_Address1,
   Agency_Book_View.Effective_Date
Order by (Agency_Book_View.agency_no || '-' || Agency_Book_View.branch_no)

これにより、を使用して、アドレスを持っているように見えるシーケンス番号がテーブルに追加されますrow_number()。最新のものを判別するためのフィールドの存在を前提としています。名前を推測しています。外側の集計関数を使用してselect、最初の値を選択します。

于 2012-12-12T20:23:24.897 に答える