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

kako dodati redni broj reda u rezultate SQL upita?

[es] :: Baze podataka :: kako dodati redni broj reda u rezultate SQL upita?

[ Pregleda: 7534 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lenny
Lendak Imre
saradnik, FTN, Novi Sad
NS

Član broj: 3147
Poruke: 68
*.leased.neobee.net.

ICQ: 158238713


Profil

icon kako dodati redni broj reda u rezultate SQL upita?12.02.2005. u 15:29 - pre 233 meseci
Izvršim ovaj upit:
Code:
SELECT ime, prezime FROM autori ORDER BY prezime, ime

i dobijem sledeće rezultate:
Code:

Ime|Prezime
Laza|Lazić
Mika|Mikić
Pera|Petrović


Pitanje je sledeće: da li je moguće nekako proširiti gornji upit, da mi da i redni broj svakog reda dobijenog upitom, tj da mi doda dodatnu kolonu, redni broj:

Code:

RedniBroj|Ime|Prezime
1|Laza|Lazić
2|Mika|Mikić
3|Pera|Petrović

Ovo mi treba za složeni izveštaj. Znam da se može programski rešiti, ali me interesuje da li može i SQL da pomogne ovde?

Baza je MS SQL, verzija 7. Mislim da je to manje važno.
No signature...
 
Odgovor na temu

GoranVucicevic
Novi Sad

Član broj: 28045
Poruke: 66
*.dialup.neobee.net.

Sajt: www.clickersoftware.com


Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?12.02.2005. u 16:25 - pre 233 meseci
Moze, ako imas kljuc koji bi u tvom slucaju bio AutorID onda bi resenje bilo
Code:

SELECT (SELECT COUNT(*) FROM autori autoriSUB WHERE autoriSUB.AutorID <= autoriMain.AutorID) AS RB, ime, prezime, AutorID 
FROM autori autoriMain
ORDER BY AutorID, prezime, ime


Naravno, ovo resenje je sporo, jer se prilikom formiranja rezultset-a za svaki slog izvrsava podupit za RB, a isto tako tebi podaci treba da su uredjeni po prezimenu, a ne po ID-, tako da ovo shvati samo kao interesantan primer.

Drugi nacin ti je da ti to vrati stored procedure.
Treci nacin ti je da formiras temporary table koja ce ti vratiti podatke koje trazis...
Vidi: GoranVuc #4934
 
Odgovor na temu

lenny
Lendak Imre
saradnik, FTN, Novi Sad
NS

Član broj: 3147
Poruke: 68
*.leased.neobee.net.

ICQ: 158238713


Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?13.02.2005. u 15:58 - pre 233 meseci
Citat:
GoranVucicevic
Code:

SELECT (
SELECT COUNT(*) FROM autori autoriSUB WHERE autoriSUB.AutorID <= autoriMain.AutorID
) AS RB, ime, prezime, AutorID 
FROM autori autoriMain
ORDER BY AutorID, prezime, ime




Interesantna ideja. Na nesreću meni je potrebno sortiranje po prezimenu, pa mi ova solucija ne rešava problem...

Verovatno ću morati da programski dopunim dataset sa rednim brojem...
No signature...
 
Odgovor na temu

djoca!

Član broj: 14245
Poruke: 117
*.kg.sbb.co.yu.



Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?13.02.2005. u 18:33 - pre 233 meseci
Koristi promenljive koje imas u MS SQL-u kao i u recimo MySQL-u.

Da ne lupam napamet posto nemam ovde instaliran MS SQL, ali varijanta npr

set @rank:=0;
select @rank:=@rank+1 as rank, ime, prezime FROM autori ORDER BY prezime, ime

bi bilo u MySQL-u, sad samo vidi sintaksu za MS SQL
 
Odgovor na temu

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?13.02.2005. u 19:47 - pre 233 meseci
Koristi privremenu tabelu u kojoj će prvo polje biti IDENTITY, a u ostala možeš onda samo da staviš primarne ključeve iz potrebnih tabela.
Commercial-Free !!!
 
Odgovor na temu

lenny
Lendak Imre
saradnik, FTN, Novi Sad
NS

Član broj: 3147
Poruke: 68
*.leased.neobee.net.

ICQ: 158238713


Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?14.02.2005. u 09:35 - pre 233 meseci
Citat:
djoca!: Koristi promenljive koje imas u MS SQL-u kao i u recimo MySQL-u.

set @rank:=0;
select @rank:=@rank+1 as rank, ime, prezime FROM autori ORDER BY prezime, ime



(Na svu nesreću,) radi se o MS SQL-u, verzija 7. Probao sam ovako, i dobio poruku o greški, koja mi stavlja na znanje da upit koji menja vrednost promenljive, ne može da se koristi i za izvlačenje podataka iz baze. Znači ili redni broj, ili podaci iz tabele...
No signature...
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.blueisp.co.yu.



+3 Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?14.02.2005. u 14:24 - pre 233 meseci
Zar MS SQL nema neku pseudokolonu kaja sluzi upravo toj svrsi??
Owl
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.telekom.yu.



+104 Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?12.12.2005. u 10:56 - pre 223 meseci
Za Oracle je to ROWNUM pa ne verujem da MS SQL nema nešto slično
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

negyxo
Aleksandar Perkuchin

Član broj: 29751
Poruke: 898
*.sksyu.net.



+171 Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?12.12.2005. u 13:05 - pre 223 meseci
Nazalost SQL Server sve do verzije 2000 nema podrsku za ovako nesto. Praksa je bila da se ide preko privremenih tabela u kombinaciji sa IDENTITY. Tek od vezije 2005 i SQLExpress-a je ubacena funkcija ROW_NUMBER() koja odlicno obavlja posao.
 
Odgovor na temu

obucina

Član broj: 38191
Poruke: 723

Jabber: obucina


+7 Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?12.12.2005. u 18:13 - pre 223 meseci
Ovo mozes da izvedes sa select stored procedurom.
 
Odgovor na temu

Djoks
Djordje Najdanovic
Software Developer
Azalea Maritime

Član broj: 1630
Poruke: 268
*.crnagora.net.

Sajt: www.azalea-maritime.com


Profil

icon Re: kako dodati redni broj reda u rezultate SQL upita?12.12.2005. u 23:25 - pre 223 meseci
Nije skroz jednostavno, ali moze pomoci. Caka je da kreiras virtuelnu tabelu

sa jednom kolonom koja ce biti identity:


CREATE TABLE #statement (

[no] int identity,

person varchar(30),

route varchar(20),

cost decimal(6,2)

)


INSERT INTO #statement (person, route, cost)

SELECT

... tvoj upit


SELECT * FROM #statement


DROP TABLE #statement


Pozdrav!


 
Odgovor na temu

[es] :: Baze podataka :: kako dodati redni broj reda u rezultate SQL upita?

[ Pregleda: 7534 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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