Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li je ovaj upit uopšte moguć?

[es] :: MySQL :: Da li je ovaj upit uopšte moguć?

[ Pregleda: 2566 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.vdial.verat.net.



+1365 Profil

icon Da li je ovaj upit uopšte moguć?13.06.2007. u 14:49 - pre 205 meseci
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.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: Da li je ovaj upit uopšte moguć?13.06.2007. u 15:46 - pre 205 meseci
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.
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

Tyler Durden
Tyler Durden
Beograd

Član broj: 4312
Poruke: 3379
*.vdial.verat.net.



+1365 Profil

icon Re: Da li je ovaj upit uopšte moguć?14.06.2007. u 11:18 - pre 205 meseci
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.
Beneath civilization's fragile crust, cold chaos churns...
 
Odgovor na temu

[es] :: MySQL :: Da li je ovaj upit uopšte moguć?

[ Pregleda: 2566 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.