Nice resource, msi77.

Thanx for sharing.

I wasn't aware of none of these techniques, actually, so I tried to start
from scratch, but I should've realized that many people in the past had the
same problem as Mike and I should have googled a little instead of trying
to re-invent the wheel.

Anyway, this is great information and I'm sure it will be useful in the
future.
Again thanx for sharing.

Best,
Oliver



2012/6/2 msi77 <ms...@yandex.ru>

> A few of approaches to solve this problem:
>
> http://sql-ex.com/help/select16.php
>
> 01.06.2012, 18:34, "Relyea, Mike" <mike.rel...@xerox.com>:
> > I need a little help putting together a query.  I have the tables listed
> > below and I need to return the lowest two consumables (ranked by cost
> > divided by yield) per printer, per color of consumable, per type of
> > consumable.
> >
> > CREATE TABLE printers
> > (
> >   printerid serial NOT NULL,
> >   make text NOT NULL,
> >   model text NOT NULL,
> >   CONSTRAINT printers_pkey PRIMARY KEY (make , model ),
> >   CONSTRAINT printers_printerid_key UNIQUE (printerid ),
> > )
> >
> > CREATE TABLE consumables
> > (
> >   consumableid serial NOT NULL,
> >   brand text NOT NULL,
> >   partnumber text NOT NULL,
> >   color text NOT NULL,
> >   type text NOT NULL,
> >   yield integer,
> >   cost double precision,
> >   CONSTRAINT consumables_pkey PRIMARY KEY (brand , partnumber ),
> >   CONSTRAINT consumables_consumableid_key UNIQUE (consumableid )
> > )
> >
> > CREATE TABLE printersandconsumables
> > (
> >   printerid integer NOT NULL,
> >   consumableid integer NOT NULL,
> >   CONSTRAINT printersandconsumables_pkey PRIMARY KEY (printerid ,
> > consumableid ),
> >   CONSTRAINT printersandconsumables_consumableid_fkey FOREIGN KEY
> > (consumableid)
> >       REFERENCES consumables (consumableid) MATCH SIMPLE
> >       ON UPDATE CASCADE ON DELETE CASCADE,
> >   CONSTRAINT printersandconsumables_printerid_fkey FOREIGN KEY
> > (printerid)
> >       REFERENCES printers (printerid) MATCH SIMPLE
> >       ON UPDATE CASCADE ON DELETE CASCADE
> > )
> >
> > I've pulled together this query which gives me the lowest consumable per
> > printer per color per type, but I need the lowest two not just the first
> > lowest.
> >
> > SELECT printers.make, printers.model, consumables.color,
> > consumables.type, min(cost/yield) AS cpp
> > FROM printers
> > JOIN printersandconsumables ON printers.printerid =
> > printersandconsumables.printerid
> > JOIN consumables ON consumables.consumableid =
> > printersandconsumables.consumableid
> > WHERE consumables.cost Is Not Null
> > AND consumables.yield Is Not Null
> > GROUP BY printers.make, printers.model, consumables.color,
> > consumables.type
> > ORDER BY make, model;
> >
> > After doing a google search I didn't come up with anything that I was
> > able to use so I'm asking you fine folks!
> >
> > Mike
> >
> > --
> > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> > To make changes to your subscription:
> > http://www.postgresql.org/mailpref/pgsql-sql
>
> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>

Reply via email to