Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Trying to simplify an sql query

Re: Trying to simplify an sql query

From: dn.usenet <dn.usenet_at_gmail.com>
Date: 17 Apr 2006 23:39:10 -0700
Message-ID: <1145342350.018269.314040@t31g2000cwb.googlegroups.com>

Sybrand Bakker wrote:
>
> logically speaking the subquery should return 1 if any record exists
> in any month for the combination of project and year.
> As month is no part of the primary key and exists will invariably
> select only 1 record, you don't need the month and you don't need the
> count(*) and the group by.
>

You are correct. Let me re-post my query with one change. Please note : I am specifying a new primary key this time.

I am using the following sql query which I feel could be simplified, but I don't know how. For t1, fields (project + year + quarter) form the Pr Key.

select t1.location from t1 aa, t2 t2
  where aa.project = t2.project and aa.year = t2.year and aa.month = t2.month
  and exists
(select 1 from t1 bb where aa.project = bb.project and aa.year = bb.year
having count(*) = 1
group by bb.project, bb.year, bb.month
)

I think I have tried the following construct for the subquery but it hanged the database; maybe I tried a query which is slightly different than the one I am quoting below, but I don't want to risk hanging the database again.

(select 1 from null having count(*) = 1
group by aa.project, aa.year, aa.month)

I want to ignore the cases where project-year-month combo occurs more than once, as in : project = proj, year = 2006, month = march, quarter = Q1 (or) Q2.
{proj, 2006, Q1, march}
{proj, 2006, Q2, march}

Thanks in advance. Received on Tue Apr 18 2006 - 01:39:10 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US