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

Ponavljanje istog reda n puta

[es] :: Baze podataka :: Ponavljanje istog reda n puta

[ Pregleda: 1823 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladislavl

Član broj: 213693
Poruke: 6
*.static.beocity.net.



Profil

icon Ponavljanje istog reda n puta22.02.2009. u 22:50 - pre 167 meseci
U tabeli se nalazi polje sa numerickom vrednoscu.
Upit treba da vrati isti red onoliko puta kolika je vrednost u polju

Primer:

Podaci:

2
3

Rezultat:

2
2
3
3
3

Ima li neko resenje
Hvala

 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+709 Profil

icon Re: Ponavljanje istog reda n puta22.02.2009. u 23:41 - pre 167 meseci
Ja nemam, al me interesuje šta će ti to.
 
Odgovor na temu

vladislavl

Član broj: 213693
Poruke: 6
*.static.beocity.net.



Profil

icon Re: Ponavljanje istog reda n puta22.02.2009. u 23:55 - pre 167 meseci
Najjednostavnije,
neki red, u stampi treba ponoviti vise puta, ali nije uvek isti broj puta
Npr. stampa nalepnica.
 
Odgovor na temu

vladislavl

Član broj: 213693
Poruke: 6
*.static.beocity.net.



Profil

icon Re: Ponavljanje istog reda n puta23.02.2009. u 00:52 - pre 167 meseci
Reseno za ASA Sybase extenziju sto mi je i trebalo

select x.kolic
from x,
lateral( select * from sa_rowgenerator( 1, x.kolic ) ) as y

ali i dalje ostaje da li moze sa ANSI SQL-om bez vendor extenzija.
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Ponavljanje istog reda n puta23.02.2009. u 18:37 - pre 167 meseci
Moze i u standard SQL. Potrebno je imati pomocnu tabelu brojeva.
Code:

CREATE TABLE [dbo].[Brojevi]
(
    [BROJ] [int] NOT NULL PRIMARY KEY CLUSTERED 



Onda je nekako napunis brojevima od 0 do N, gde je N neki veliki broj, recimo 100,000 ili slicno.
Trebalo bi da se dobije nseto ovako:
Code:

SELECT
Broj
FROM Brojevi
WHERE Broj <=3

       Broj
-----------
          0
          1
          2
          3

Zamisli sad da imas tabelu Osobe (Ime varchar(50) kja isgleda ovako:
Code:

SELECT * 
FROM Osobe

Ime
-------------------------
Cica
Goca
Laza
Maca
Melanija
Pera
Verica
Zika

Ako hoces svako Ime iz tabele Osobe da ispises 3 puta, onda kucas ovakav izraz
Code:

SELECT broj, ime
FROM Brojevi, Osobe
WHERE Broj BETWEEN 1 AND 3
ORDER BY Ime, Broj

-- rezultta:

       broj ime
----------- -------------------------
          1 Cica
          2 Cica
          3 Cica
          1 Goca
          2 Goca
          3 Goca
          1 Laza
          2 Laza


Ovo je kao da celu tabelu Osobe na 'pomnozis' sa tabelom Brojevi.

Za tvoj slucaj, ide ovako:
Code:

CREATE TABLE Roba
(Artikl varchar(50)
, Kolicina int
)

INSERT INTO Roba VALUES ('Jabuke',3)
INSERT INTO Roba VALUES  ('Kruske',2)
INSERT INTO Roba VALUES  ('Kupus',4)

SELECT * FROM Roba;
Artikl                                                Kolicina
-------------------------------------------------- -----------
Jabuke                                                       3
Kruske                                                       2
Kupus                                                        4



Kveri koji svaki artikl ispisuje onoliko puta koliko pise u koloni Kolicina izgleda ovako:
Code:

SELECT ARtikl, Kolicina, Broj
FROM Roba, Brojevi
WHERE Brojevi.Broj BETWEEN 1 AND Roba.Kolicina
ORDER BY Artikl, Broj

Sam mozes da proveris rezultat.

Ovo ti je kao kod teskih zadataka u matematici, kad ti neko kaze 'dodaj (1+2x) na obe strane jednacine.... Tako smo ovde dodali pomocnu tabelu koja nam je resila problem na veoma jednostavan nacin.




 
Odgovor na temu

zeppelin
Cacak

Član broj: 33
Poruke: 49
*.eunet.yu.



+2 Profil

icon Re: Ponavljanje istog reda n puta06.03.2009. u 23:34 - pre 167 meseci
ma bravo genije, upravo sam hteo da postavim novu temu posle vise od dva sata cimanja.



[Ovu poruku je menjao zeppelin dana 07.03.2009. u 00:57 GMT+1]
 
Odgovor na temu

[es] :: Baze podataka :: Ponavljanje istog reda n puta

[ Pregleda: 1823 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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