Novo

Forum kao aplikacija na telefonu

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

  • 3 odgovora
  • 4.307 pregleda

Najnovija ↓

pomoc za kreiranje view upita 13.03.2007. u 03:16 · pre 239 meseci #1
Imam tabelu
1. ID
2. Naziv

Da li neko zna kako da napravim view,
tako da, dobijem
3 polja Naziv sa svakim trecim podatkom iz prve

Naziv 1
Naziv 2
Naziv 3

primer tabele

id Naziv

1 dali
2 micko
3. natasa
4. neven
5. jelen
6. rotor

primer rezultata za view

Naziv1 Naziv2 Naziv3

dali micko natasa
neven jelen rotor
etc........


Da li uopste postoji nacin da se napravi takav upit.
hvala unapred.
Re: pomoc za kreiranje view upita 13.03.2007. u 06:50 · pre 239 meseci #2
Ne koristim MySQL, ali evo ti kao ideja upit koji radi u PostgreSQL-u (mozda radi i u MySQL-u?):
Code:

SELECT p.id, MAX(p.naziv1), MAX(p.naziv2), MAX(p.naziv3)
  FROM (SELECT (id-1) / 3 AS id, naziv AS naziv1, '' AS naziv2, '' AS naziv3
          FROM imena
         WHERE (id-1) % 3 = 0
         UNION ALL
        SELECT (id-1) / 3 AS id, '' AS naziv1, naziv AS naziv2, '' AS naziv3
          FROM imena
         WHERE (id-1) % 3 = 1
         UNION ALL
        SELECT (id-1) / 3 AS id, '' AS naziv1, '' AS naziv2, naziv AS naziv3
          FROM imena
         WHERE (id-1) % 3 = 2
       ) AS p
 GROUP BY p.id
 ORDER BY p.id

Znak / je u ovom slucaju celobrojno delenje, dok je % ostatak pri celobrojnom delenju.

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: pomoc za kreiranje view upita 14.03.2007. u 01:14 · pre 239 meseci #3
Puno hvala, malo cu da modifikujem
ali bez tvog odgovora ne bih ni imao
ideju kako da resim.
poz
Re: pomoc za kreiranje view upita 14.03.2007. u 07:57 · pre 239 meseci #4
Moze taj upit i lepse (jasnije) da izgleda kada se izbaci ono id-1, jer to -1 moze da se regulise i sa ostatkom pri deljenju:
Code:

SELECT p.id, MAX(p.naziv1), MAX(p.naziv2), MAX(p.naziv3)
  FROM (SELECT id / 3 AS id, naziv AS naziv1, '' AS naziv2, '' AS naziv3
          FROM imena
         WHERE id % 3 = 1
         UNION ALL
        SELECT id / 3 AS id, '' AS naziv1, naziv AS naziv2, '' AS naziv3
          FROM imena
         WHERE id % 3 = 2
         UNION ALL
        SELECT id / 3 AS id, '' AS naziv1, '' AS naziv2, naziv AS naziv3
          FROM imena
         WHERE id % 3 = 0
       ) AS p
 GROUP BY p.id
 ORDER BY p.id

Treba sam pripaziti da je sada upotrebljavani ostatak pri deljenju redom 1, 2 pa tek na kraju 0.
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