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

upit za prvi slobodan broj

[es] :: MySQL :: upit za prvi slobodan broj

[ Pregleda: 551 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

drugtito
Milovan Djilasd

Član broj: 138118
Poruke: 35
*.dynamic.sbb.co.yu.



Profil

icon upit za prvi slobodan broj15.05.2007. u 01:19

Pozdrav svima,
ne znam kako da formiram upit, pa mi treba pomoc.
Ovako:

Imam bazu

Id Naziv BrZaduzenja

1 aaa 1
2 bbb 2
3 ccc 3
4 ddd 4
5 eee 6
6 fff 7
7 das 8
8 ssa 10
9 sdf 11
10 asf 12

Interesujeme kako mogu da dobijem prvi slobodan broj
iz field-a "BrZaduzenja" tj, u ovom
slucaju bi slobodni bili brojevi: (5, 9, i 13)?

Hvala unapred.
pozdrav

Well we know where we're goin'
But we dont know where we've been
And we know what were knowin'
But we can't say what we've seen
And we're not little children
And we know what we want
And the future is certain
Give us time to work it out
15.05.2007. u 01:19 

chachka
Srđan Mijatov
Subotica

Član broj: 53780
Poruke: 511
213.244.228.*

Sajt: www.baze-podataka.net


Profil

icon Re: upit za prvi slobodan broj15.05.2007. u 07:11
Ako BrZaduzenja pripada skupu prirodnih brojeva, onda:
Code:

SELECT COALESCE(MIN(t.neiskoriscen_BrZaduzenja),
                (SELECT MAX(BrZaduzenja) + 1 FROM neka_tabela)
               ) AS najmanji_slobodan_BrZaduzenja
  FROM (SELECT COUNT(t2.BrZaduzenja) AS neiskoriscen_BrZaduzenja
          FROM neka_tabela AS t1
               INNER JOIN
               neka_tabela AS t2
                 ON t1.BrZaduzenja >= t2.BrZaduzenja
         GROUP BY t1.BrZaduzenja
        HAVING t1.BrZaduzenja <> COUNT(t2.BrZaduzenja)
       ) AS t

Gornji upit ne samo da vraca prvu rupu nego u slucaju da nema rupe vraca prvi sledeci broj. Ako je potrebno samo nalazenje rupe onda je dovoljno i:
Code:

SELECT MIN(t.neiskoriscen_BrZaduzenja) AS najmanji_neiskoriscen_BrZaduzenja
  FROM (SELECT COUNT(t2.BrZaduzenja) AS neiskoriscen_BrZaduzenja
          FROM neka_tabela AS t1
               INNER JOIN
               neka_tabela AS t2
                 ON t1.BrZaduzenja >= t2.BrZaduzenja
         GROUP BY t1.BrZaduzenja
        HAVING t1.BrZaduzenja <> COUNT(t2.BrZaduzenja)
       ) AS t


[Ovu poruku je menjao chachka dana 15.05.2007. u 10:17 GMT+1]
"The best code is no code at all." - Zidar
"biggest obstacle to learning SQL is unlearning procedural programming" - Joe Celko
15.05.2007. u 07:11 

drugtito
Milovan Djilasd

Član broj: 138118
Poruke: 35
*.dynamic.sbb.co.yu.



Profil

icon Re: upit za prvi slobodan broj15.05.2007. u 08:58
Hvala puno
na brzom odgovoru

Well we know where we're goin'
But we dont know where we've been
And we know what were knowin'
But we can't say what we've seen
And we're not little children
And we know what we want
And the future is certain
Give us time to work it out
15.05.2007. u 08:58 

bloker
Anicic Milenko
Bijeljina / R. Srpska

Član broj: 79958
Poruke: 118
91.191.11.*

Sajt: www.drustvo.iz.rs


Profil

icon Re: upit za prvi slobodan brojpre 28 dana i 22h
Ja se izvinjavam sto aktiviram ove "zastarele" teme.. ali jedino je ova tema za prvi slobodan broj..

ja ne kontam gore navedeni sql kod.. gore se povezuju neke 2 tabele i onda se trazi najmanji..
meni treba sql kod koji iz jedne tabele koja ima polja Sifra i Naziv nadje prvu slobodnu sifru.. tj. prvu "rupu"..
14.09.2008. u 18:28 

agvozden
Aleksandar Gvozden
www.BGSvetionik.com
Beograd

Član broj: 37813
Poruke: 167
*.ptt.rs.

Sajt: www.aleksinac.net


Profil

icon Re: upit za prvi slobodan brojpre 28 dana i 8h
ne povezuju se bilo koje dve tabele vec se povezuje ista tabela sa "kopijom" te tabele putem alijasa (znaci ne postoji fizicki kopija tabele, vec se radi na istoj tabeli)

OTPOR DO POBEDE
15.09.2008. u 08:34 

[es] :: MySQL :: upit za prvi slobodan broj

[ Pregleda: 551 | Odgovora: 4 ]

Postavi temu Odgovori

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