Re: Sort of Complex Query - Howto Eliminate Repeating Results - Mailing list pgsql-novice

From
Subject Re: Sort of Complex Query - Howto Eliminate Repeating Results
Date
Msg-id 20060112200712.13035.qmail@web33304.mail.mud.yahoo.com
Whole thread Raw
In response to Re: Sort of Complex Query - Howto Eliminate Repeating Results  (Michael Fuhr <mike@fuhr.org>)
Responses Re: Sort of Complex Query - Howto Eliminate Repeating Results
List pgsql-novice
> On Thu, Jan 12, 2006 at 09:08:59AM -0800,
> operationsengineer1@yahoo.com wrote:
> > they query i'm using is as follows:
> >
> > SELECT t_product.product_id,
> >        t_product.product_number,
> >        t_serial_number.serial_number_id,
> >        t_serial_number.serial_number,
> > FROM t_serial_number
>
> Are you sure this is the query you're using?  It has
> a syntax error
> due to the comma after the final field in the select
> list.  As
> written this query shouldn't run at all, so it's
> hard for us to
> trust that it's what you're really doing.

i deleted a 5th select result in yahoo w/o deleting
the comma - whoops!  otherwise it is 100% what i'm
using.  oh, and you are right - it will not work with
the extra comma.

> > my last problem is that serial number repeats for
> each
> > inspection.  let's say 2/n has four fails w/o a
> pass.
> > it will display four rimes.  i want it to display
> a
> > single time.  select distinct didn't work.  i
> don't
> > know if it is possible to get distinct values
> withing
> > an ON clause.
>
> How didn't SELECT DISTINCT work?  Did it return the
> wrong results?
> Did it fail with a syntax error?  If you got an
> error like
>
> ERROR:  for SELECT DISTINCT, ORDER BY expressions
> must appear in select list
>
> then try qualifying serial_number in the ORDER BY
> clause, like this:
>
> ORDER BY t_serial_number.serial_number::int ASC;
>
> --
> Michael Fuhr

Michael, i did as you said.  i've posted the select
statement (exactly, this time!) and the resulting
error.

select statement:

SELECT DISTINCT t_product.product_id,
       t_product.product_number,
       t_serial_number.serial_number_id,
       t_serial_number.serial_number
FROM t_serial_number
LEFT JOIN t_link_contract_number_job_number
    ON (
t_serial_number.link_contract_number_job_number_id =

t_link_contract_number_job_number.link_contract_number_job_number_id
       )
LEFT JOIN t_job_number
   ON (
t_link_contract_number_job_number.job_number_id =
        t_job_number.job_number_id
      )
LEFT JOIN t_product
   ON ( t_product.product_id =
        t_job_number.product_id
      )
LEFT JOIN t_inspect
   ON ( t_serial_number.serial_number_id =
        t_inspect.serial_number_id
      )
LEFT JOIN t_inspect_area
   ON ( t_inspect.inspect_area_id =
        t_inspect_area.inspect_area_id
      )
WHERE t_serial_number.serial_number_id NOT IN
      (SELECT serial_number_id FROM t_inspect
       WHERE t_inspect_area.inspect_area_id = 1
       AND inspect_pass = true)
       OR t_inspect_area.inspect_area_id IS NULL
ORDER BY t_serial_number.serial_number::int ASC

resulting error:

ERROR:  for SELECT DISTINCT, ORDER BY expressions must
appear in select list

(good call onthe type of error).

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

pgsql-novice by date:

Previous
From:
Date:
Subject: Re: Sort of Complex Query - Howto Eliminate Repeating Results
Next
From: tmorelli@tmorelli.com.br
Date:
Subject: Re: A question about pages. Now is VERY clear!