[ Tyler Durden @ 13.06.2007. 14:49 ] @
Imam ovakvu tabelu.

+------------+------------+---------------+
| datum1 | datum2 | neki_proizvod |
+------------+------------+---------------+
| 1998-09-21 | 2000-01-01 | proizvod1 |
| 2001-01-15 | 2002-01-15 | proizvod2 |
| 2001-02-15 | 2002-02-15 | proizvod3 |
| 2002-04-02 | 2003-04-02 | proizvod2 |
| 2003-05-19 | 2005-04-19 | proizvod2 |
+------------+------------+---------------+

Meni je potrebno da upitom dođem do ovakvog rezultata:
Datum 1. unosa | Datum zadnjeg produzenja | Datum kad istice | Naziv proizvoda
| 1998-09-21 | 1998-09-21 | 2000-01-01 | proizvod1
| 2001-02-15 | 2001-02-15 | 2002-02-15 | proizvod3
| 2001-01-15 | 2003-05-19 | 2005-04-19 | proizvod2


Dakle, neki proizvodi se ponavljaju, a neki imaju samo jedan unos. Potrebno mi je za one koji se jednom pojavljuju da izvučem unos i postavim datum1 kao prve dvije kolone u rezultatu (i to nije problem) i potrebno mi je za one koji koji se ponavljaju da uzmem datum1 od prvog unosa i kao prvu kolonu u rezultatu i datum1 i datum2 od zadnjeg unosa kao kolonu 2 i 3 u rezultatu što mi nikako ne uspijeva.

Nadam se da sam bio jasan šta pokušavam da uradim.
[ chachka @ 13.06.2007. 15:46 ] @
Naravno da moze. Doduse provereno je na PostgreSQL 8.2:
Code:

SELECT c.neki_proizvod AS naziv_proizvoda,
       MAX(c.datum1) AS datum_prvog_unosa,
       MAX(c.datum2) AS datum_zadnjeg_produzenja,
       MAX(c.datum3) AS datum_kad_istice
  FROM (SELECT neki_proizvod,
               MIN(datum1) AS datum1,
               CAST(NULL AS DATE) AS datum2,
               CAST(NULL AS DATE) AS datum3
          FROM neka_tabela
         GROUP BY neki_proizvod
         UNION ALL
        SELECT b.neki_proizvod,
               CAST(NULL AS DATE) AS datum1,
               b.datum1 AS datum2,
               b.datum2 AS datum3
          FROM (SELECT neki_proizvod, MAX(datum1) AS datum
                  FROM neka_tabela
                 GROUP BY neki_proizvod
               ) AS a
               INNER JOIN
               neka_tabela AS b
                 ON a.neki_proizvod = b.neki_proizvod
                AND a.datum = b.datum1
        ) AS c
 GROUP BY c.neki_proizvod
 ORDER BY c.neki_proizvod;

Ideja resenja je identicna ideji koja je primenjena u temi SQL pomoc.Hitno!, samo sto se ovde dve kolone s podacima dele na tri kolone, a tamo je jedna kolona bila deljena dve kolone.
[ Tyler Durden @ 14.06.2007. 11:18 ] @
Radi!
Bravo, šta drugo da kažem :)

Moram sad da se uhvatim izučavanja ovog upita... možda budem imao neko pitanje još ako mi bude nejasno.