Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 6.150 pregleda

Najnovija ↓

Kako napisati upit... GRUP BY .. i sl ? 02.08.2006. u 13:25 · pre 246 meseci #1
Dakle nekim upit dosao sam do sledece tabele:
Code:

| ProizvodID | DobavljacID | Datum |
--------------------------------------
| 000001     |    143      | 23.05.2006 |
| 000001     |    143      | 03.03.2006 |
| 000001     |    325      | 01.02.2006 |
| 160001     |    258      | 18.11.2006 |
| 160001     |    158      | 21.01.2006 |
| 150604     |    234      | 08.07.2006 |
| 150604     |    224      | 01.05.2006 |
| 150604     |    268      | 23.03.2006 |


a iz nje treba da dobijem sledecu tabelu

Code:

| ProizvodID | DobavljacID |
---------------------------
| 000001     |    143       |
| 160001     |    258       |
| 150604     |    234       |

dakle ovo sam izukao za svaki ProizvodID .. DobavljacID... ciji je datum poslednji za taj proizvod. Dakle, to mi treba da znam od kog sam dobavljaca zadnji put dobio koji proizvod. Dakle za svaki proizvod da znam koji je to dobavljac. E ja ne znam kako da iz prve tabele dobijem ovu drugu. Ima li ko resenje.. sugestiju :)
Potpis
... Mu .... Mu ...
Re: Kako napisati upit... GRUP BY .. i sl ? 02.08.2006. u 21:00 · pre 246 meseci #3
Napravio ovaj upit. Ali posto je to na poslu i ima dooosta artikala 10000 i sad zamislite koliko ima jos isporuka. pa sad naci onu koja je zadnja...ludilo.. upit mi radi 30sekundi. Inace baza je MSSQL.

jablanov post mi je pomogao.. Samo rekoh da ne zna neko postoji li sansa da se napravi neki upit koji ce malo brze radit?

Potpis
... Mu .... Mu ...
Re: Kako napisati upit... GRUP BY .. i sl ? 02.08.2006. u 21:04 · pre 246 meseci #4
To mora da radi mnogo brže. Postavi SQL koji si napravio
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: Kako napisati upit... GRUP BY .. i sl ? 02.08.2006. u 21:27 · pre 246 meseci #5
dakle ako je view koji mi vraća prvu tabelu "isporuke" onda upit izgleda ovako
Code:

SELECT DISTINC ProizvodID, (SELECT TOP 1 DobavljacID
                              FROM isporuke I2
                              WHERE I2.ProizvodID = I1.ProizvodID
                              ORDER BY Datum DESC) DobavljacID
FROM isporuke I1


Dakle i ovaj view "isporuke" nije bas da je lagan ali, ne radi ovako dugo.
Potpis
... Mu .... Mu ...
Re: Kako napisati upit... GRUP BY .. i sl ? 02.08.2006. u 22:26 · pre 246 meseci #6
Mozda MAX radi brze od TOP 1 ... ORDER BY?
Code:

SELECT I1.ProizvodID, I1.DobavljacID
  FROM isporuke AS I1
 WHERE I1.Datum = (SELECT MAX(I2.Datum)
                     FROM isporuke AS I2
                    WHERE I1.ProizvodID = I2.ProizvodID);
Potpis
"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
Re: Kako napisati upit... GRUP BY .. i sl ? 03.08.2006. u 10:13 · pre 246 meseci #8
Sa ovim spustilo se na 15 sekundi. Mislim da mi je pala ideja kako mogu da smanjim i ovo. Javicu vam jesam li uspio. Svakako hvala vam puno i za ovo.
Potpis
... Mu .... Mu ...
Re: Kako napisati upit... GRUP BY .. i sl ? 03.08.2006. u 10:28 · pre 246 meseci #9
probaj i JOIN
Code:

SELECT I1.ProizvodID, MAX(I1.DobavljacID)
  FROM isporuke AS I1
       JOIN isporuke AS I2
         ON I1.ProizvodID = I2.ProizvodID
 GROUP BY I1.ProizvodID, I1.Datum
HAVING I1.Datum = MAX(I2.Datum)
Potpis
"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
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme