Re: using Select count(*)
From: ddf <oratune_at_msn.com>
Date: Tue, 31 Mar 2009 13:19:42 -0700 (PDT)
Message-ID: <ab2ebc2b-9048-4880-87f0-11179bd0fce0_at_e10g2000vbe.googlegroups.com>
On Mar 31, 2:45 pm, Brock <wade.br..._at_yahoo.com> wrote:
> Thanks in advance for any clues... I am rather new to Oracle so here
> goes. I have a package body / query that is returning data with no
> problems. I do however need to take this package body and rewrite the
> code above the " select p.pr_p_i_n "PIN"," line to allow me to use
> the " Select count(*)" function to return only a set of records that
> have 5 or more records for each "ListingOwnername1". Any ideas?
>
> Procedure AppealsReportsInfo(beg_nbh in number,
> end_nbh in number,
> pyear in number,
> r_cursor out reportcur) is
> effdate date;
> begin
> effdate := to_date(to_char('01/01' || pyear), 'mm/dd/yyyy');
> open r_cursor for
> select p.pr_p_i_n "PIN",
> p.pr_blklot "Block Lot",
> ap.api_keyed_date "Appeal Date",
> ap.api_fmv_now "Appraised Value",
> ap.api_ask_price "Asking Price",
> ap.api_net_increase "Increase",
> ap.api_net_decrease "Decrease",
> getneighborhoodrevalappr(nb.nbh_id) "Appraiser",
> ap.api_new_value "New Value",
> ap.api_remarks "Remarks",
> ap.api_year "Tax Year",
> ap.api_ptc_number "PTC Number",
> ap.api_completion_date "Completed Date",
> ap.api_av14_date "AV14 Date",
> ap.api_inf_date "Informal Date",
> bd.bd_date "BER Date",
> ul.ul_user_login "User Login",
> a3.ad_description "App Type",
> a2.ad_description "Status",
> a1.ad_description "Outcome",
> nb.nbh_number "Neighborhood",
> nbi.nbhi_name "Neighborhood Name",
> nb.nbh_id "NBH ID",
> ju.ju_jurisdiction_name,
>
> (upper(getprintnameline(RealValNoticeListingOwner(p.pr_id,
> pyear,
> 1))))
> ListingOwnername1,
>
> (Select count(*)
> from propertyinfo_t1 pi
> where pi.pi_nbh_id = nb.nbh_id
> and pi.pi_end_date is null
> and pi.pi_eff_date >= effdate) "Property Count"
>
> from appeals_t1 a,
> property_t1 p,
> propertyinfo_t1 pi,
> appealsinfo_t1 ap,
> attributedescription_t1 a1,
> attributedescription_t1 a2,
> attributedescription_t1 a3,
> neighborhoods_t1 nb,
> neighborhoodsinfo_t1 nbi,
> userlogins_t1 ul,
> berdates_t1 bd,
> jurisslice_t1 js,
> jurisalteration_t1 ja,
> jurisdiction_t1 ju,
> listinginfo_t1 lsi,
> listing_t1 ls
>
> where a.app_pr_id = pi.pi_pr_id
> and ap.api_app_id = a.app_id
> and ap.api_end_date is null
> and ap.api_outcome_ad_id = a1.ad_id(+)
> and ap.api_appstatus_ad_id = a2.ad_id(+)
> and a.app_type_ad_id = a3.ad_id(+)
> and p.pr_id = pi.pi_pr_id
> and pi.pi_nbh_id = nb.nbh_id(+)
> and nb.nbh_id = nbi.nbhi_nbh_id
> and nb.nbh_date_archived is null
> and nbi.nbhi_end_date is null
> and nbi.nbhi_eff_date = effdate
> and nb.nbh_number >= beg_nbh
> and nb.nbh_number <= end_nbh
> and pi.pi_end_date is null
> and pi.pi_eff_date >= effdate
> and ap.api_completion_init_ul_id = ul.ul_id(+)
> and ap.api_berdate_bd_id = bd.bd_id(+)
> and js.js_ju_id = ju.ju_id
> and js.js_ja_id = ja.ja_id
> and ja.ja_pr_id = lsi.lsi_re_pr_id
> and lsi.lsi_situs_eff_date = ja.ja_eff_date
> and ja.ja_end_date is null
> and lsi.lsi_year = pyear
> and lsi.lsi_end_date is null
> and lsi.lsi_activated = 'Y'
> and lsi.lsi_ls_id = ls.ls_id
> and p.pr_id = ls.ls_acct_pr_id;
>
> end AppealsReportsInfo;
begin
effdate := to_date(to_char('01/01' || pyear), 'mm/dd/yyyy'); open r_cursor for
Date: Tue, 31 Mar 2009 13:19:42 -0700 (PDT)
Message-ID: <ab2ebc2b-9048-4880-87f0-11179bd0fce0_at_e10g2000vbe.googlegroups.com>
On Mar 31, 2:45 pm, Brock <wade.br..._at_yahoo.com> wrote:
> Thanks in advance for any clues... I am rather new to Oracle so here
> goes. I have a package body / query that is returning data with no
> problems. I do however need to take this package body and rewrite the
> code above the " select p.pr_p_i_n "PIN"," line to allow me to use
> the " Select count(*)" function to return only a set of records that
> have 5 or more records for each "ListingOwnername1". Any ideas?
>
> Procedure AppealsReportsInfo(beg_nbh in number,
> end_nbh in number,
> pyear in number,
> r_cursor out reportcur) is
> effdate date;
> begin
> effdate := to_date(to_char('01/01' || pyear), 'mm/dd/yyyy');
> open r_cursor for
> select p.pr_p_i_n "PIN",
> p.pr_blklot "Block Lot",
> ap.api_keyed_date "Appeal Date",
> ap.api_fmv_now "Appraised Value",
> ap.api_ask_price "Asking Price",
> ap.api_net_increase "Increase",
> ap.api_net_decrease "Decrease",
> getneighborhoodrevalappr(nb.nbh_id) "Appraiser",
> ap.api_new_value "New Value",
> ap.api_remarks "Remarks",
> ap.api_year "Tax Year",
> ap.api_ptc_number "PTC Number",
> ap.api_completion_date "Completed Date",
> ap.api_av14_date "AV14 Date",
> ap.api_inf_date "Informal Date",
> bd.bd_date "BER Date",
> ul.ul_user_login "User Login",
> a3.ad_description "App Type",
> a2.ad_description "Status",
> a1.ad_description "Outcome",
> nb.nbh_number "Neighborhood",
> nbi.nbhi_name "Neighborhood Name",
> nb.nbh_id "NBH ID",
> ju.ju_jurisdiction_name,
>
> (upper(getprintnameline(RealValNoticeListingOwner(p.pr_id,
> pyear,
> 1))))
> ListingOwnername1,
>
> (Select count(*)
> from propertyinfo_t1 pi
> where pi.pi_nbh_id = nb.nbh_id
> and pi.pi_end_date is null
> and pi.pi_eff_date >= effdate) "Property Count"
>
> from appeals_t1 a,
> property_t1 p,
> propertyinfo_t1 pi,
> appealsinfo_t1 ap,
> attributedescription_t1 a1,
> attributedescription_t1 a2,
> attributedescription_t1 a3,
> neighborhoods_t1 nb,
> neighborhoodsinfo_t1 nbi,
> userlogins_t1 ul,
> berdates_t1 bd,
> jurisslice_t1 js,
> jurisalteration_t1 ja,
> jurisdiction_t1 ju,
> listinginfo_t1 lsi,
> listing_t1 ls
>
> where a.app_pr_id = pi.pi_pr_id
> and ap.api_app_id = a.app_id
> and ap.api_end_date is null
> and ap.api_outcome_ad_id = a1.ad_id(+)
> and ap.api_appstatus_ad_id = a2.ad_id(+)
> and a.app_type_ad_id = a3.ad_id(+)
> and p.pr_id = pi.pi_pr_id
> and pi.pi_nbh_id = nb.nbh_id(+)
> and nb.nbh_id = nbi.nbhi_nbh_id
> and nb.nbh_date_archived is null
> and nbi.nbhi_end_date is null
> and nbi.nbhi_eff_date = effdate
> and nb.nbh_number >= beg_nbh
> and nb.nbh_number <= end_nbh
> and pi.pi_end_date is null
> and pi.pi_eff_date >= effdate
> and ap.api_completion_init_ul_id = ul.ul_id(+)
> and ap.api_berdate_bd_id = bd.bd_id(+)
> and js.js_ju_id = ju.ju_id
> and js.js_ja_id = ja.ja_id
> and ja.ja_pr_id = lsi.lsi_re_pr_id
> and lsi.lsi_situs_eff_date = ja.ja_eff_date
> and ja.ja_end_date is null
> and lsi.lsi_year = pyear
> and lsi.lsi_end_date is null
> and lsi.lsi_activated = 'Y'
> and lsi.lsi_ls_id = ls.ls_id
> and p.pr_id = ls.ls_acct_pr_id;
>
> end AppealsReportsInfo;
Why won't this work:
Procedure AppealsReportsInfo(beg_nbh in number,
                               end_nbh  in number,
                               pyear    in number,
                               r_cursor out reportcur) is
    effdate date;
begin
effdate := to_date(to_char('01/01' || pyear), 'mm/dd/yyyy'); open r_cursor for
     select p.pr_p_i_n "PIN",
             p.pr_blklot "Block Lot",
             ap.api_keyed_date "Appeal Date",
             ap.api_fmv_now "Appraised Value",
             ap.api_ask_price "Asking Price",
             ap.api_net_increase "Increase",
             ap.api_net_decrease "Decrease",
             getneighborhoodrevalappr(nb.nbh_id) "Appraiser",
             ap.api_new_value "New Value",
             ap.api_remarks "Remarks",
             ap.api_year "Tax Year",
             ap.api_ptc_number "PTC Number",
             ap.api_completion_date "Completed Date",
             ap.api_av14_date "AV14 Date",
             ap.api_inf_date "Informal Date",
             bd.bd_date "BER Date",
             ul.ul_user_login "User Login",
             a3.ad_description "App Type",
             a2.ad_description "Status",
             a1.ad_description "Outcome",
             nb.nbh_number "Neighborhood",
             nbi.nbhi_name "Neighborhood Name",
             nb.nbh_id "NBH ID",
             ju.ju_jurisdiction_name,
            (upper(getprintnameline(RealValNoticeListingOwner(p.pr_id,
pyear, 1)))) ListingOwnername1,
             (Select count(*)
                from propertyinfo_t1 pi
               where pi.pi_nbh_id = nb.nbh_id
                 and pi.pi_end_date is null
                 and pi.pi_eff_date >= effdate) "Property Count"
        from appeals_t1              a,
             property_t1             p,
             propertyinfo_t1         pi,
             appealsinfo_t1          ap,
             attributedescription_t1 a1,
             attributedescription_t1 a2,
             attributedescription_t1 a3,
             neighborhoods_t1        nb,
             neighborhoodsinfo_t1    nbi,
             userlogins_t1           ul,
             berdates_t1             bd,
             jurisslice_t1      js,
             jurisalteration_t1 ja,
             jurisdiction_t1    ju,
             listinginfo_t1     lsi,
             listing_t1         ls
       where a.app_pr_id = pi.pi_pr_id
         and ap.api_app_id = a.app_id
         and ap.api_end_date is null
         and ap.api_outcome_ad_id = a1.ad_id(+)
         and ap.api_appstatus_ad_id = a2.ad_id(+)
         and a.app_type_ad_id = a3.ad_id(+)
         and p.pr_id = pi.pi_pr_id
         and pi.pi_nbh_id = nb.nbh_id(+)
         and nb.nbh_id = nbi.nbhi_nbh_id
         and nb.nbh_date_archived is null
         and nbi.nbhi_end_date is null
         and nbi.nbhi_eff_date = effdate
         and nb.nbh_number >= beg_nbh
         and nb.nbh_number <= end_nbh
         and pi.pi_end_date is null
         and pi.pi_eff_date >= effdate
         and ap.api_completion_init_ul_id = ul.ul_id(+)
         and ap.api_berdate_bd_id = bd.bd_id(+)
         and js.js_ju_id = ju.ju_id
         and js.js_ja_id = ja.ja_id
         and ja.ja_pr_id = lsi.lsi_re_pr_id
         and lsi.lsi_situs_eff_date = ja.ja_eff_date
         and ja.ja_end_date is null
         and lsi.lsi_year = pyear
         and lsi.lsi_end_date is null
         and lsi.lsi_activated = 'Y'
         and lsi.lsi_ls_id = ls.ls_id
         and p.pr_id = ls.ls_acct_pr_id
         and (upper(getprintnameline(RealValNoticeListingOwner
(p.pr_id, pyear, 1)))) in
             (select (upper(getprintnameline(RealValNoticeListingOwner
(pr_id, pyear, 1))))
              from property_t1
              group by (upper(getprintnameline
(RealValNoticeListingOwner(p.pr_id, pyear, 1))))
              having count(*) > 4);
end AppealsReportsInfo;
David Fitzjarrell Received on Tue Mar 31 2009 - 15:19:42 CDT
