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

upit za prvi slobodan broj

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

[ Pregleda: 3201 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

drugtito
Milovan Djilas

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



+1 Profil

icon upit za prvi slobodan broj15.05.2007. u 01:19 - pre 205 meseci
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
 
Odgovor na temu

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
213.244.228.*

Sajt: www.baze-podataka.net


+4 Profil

icon Re: upit za prvi slobodan broj15.05.2007. u 07:11 - pre 205 meseci
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 (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
Odgovor na temu

drugtito
Milovan Djilas

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



+1 Profil

icon Re: upit za prvi slobodan broj15.05.2007. u 08:58 - pre 205 meseci
Hvala puno
na brzom odgovoru
 
Odgovor na temu

bloker
R. Srpska

Član broj: 79958
Poruke: 216
91.191.11.*



+3 Profil

icon Re: upit za prvi slobodan broj14.09.2008. u 18:28 - pre 189 meseci
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"..
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

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

Sajt: www.gvozden.info


+68 Profil

icon Re: upit za prvi slobodan broj15.09.2008. u 08:34 - pre 189 meseci
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)

 
Odgovor na temu

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

[ Pregleda: 3201 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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