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

Niz celih brojeva od 0 do zadate gornje granice

[es] :: MySQL :: Niz celih brojeva od 0 do zadate gornje granice

[ Pregleda: 2287 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tokajac

Član broj: 93240
Poruke: 123
*.dynamic.sbb.rs.



+5 Profil

icon Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 16:33 - pre 160 meseci
Zdravo,


Kako da SELECTujem brojeve od 0 do neke gornje granice? Naprimer 5. Zasada mi stoji
Code:

select 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 5


Treba mi genericni upit u koji cu samo proslediti gornju granicu
Kako se ovo radi?


Pozdrav!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 17:21 - pre 160 meseci
zasto?
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 17:35 - pre 160 meseci
Da ti ne trebaju redni brojevi ispred kolona koje selektuješ?

Ako ti to treba onda ide ovako:

Code (sql):

SET @broj=0;
SELECT @broj:=@broj +1 AS RedniBroj, Kolona1, Kolona2
FROM tabela;
 

 
Odgovor na temu

tokajac

Član broj: 93240
Poruke: 123
*.dynamic.sbb.rs.



+5 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 17:36 - pre 160 meseci
Gradim Jasper report sa glavnim i subreportom;

Glavni report je baziran na upitu koji ce generisati trazeni niz ciju maximalnu vrednost odredjujem:
Code:
SELECT ROUND( DATEDIFF(max(date_of_service),min(date_of_service))/30 ) AS noOfIntervals
 FROM invoices
  WHERE date_of_service IS NOT null


vrednosti niza prosledjujem kao parametre u subreport (vidi "promenjiva" na 2 mesta)

Code:
SELECT date_of_service, balance
 FROM invoices
  WHERE balance IS NOT null
 AND date_of_service BETWEEN DATE_SUB( NOW(), INTERVAL promenjiva*30 day ) AND DATE_SUB( NOW(), INTERVAL promenjiva-1*30 day )


Ovaj koncept radi ono sto zelim ali treba genericki da napravim taj niz putem SQL upita u main reportu.

Kako da generisem navedeni niz u MySQL? Ne deluje komplikovano ali se jos nisam snasao?
Da li ima boljih ideja ako je neko spreman da se udubi u kompletan problem?


Pozdrav!
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 17:59 - pre 160 meseci
Da ti ne treba možda ovo?
http://dev.mysql.com/doc/refma...yntax-prepared-statements.html
 
Odgovor na temu

tokajac

Član broj: 93240
Poruke: 123
*.dynamic.sbb.rs.



+5 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 18:06 - pre 160 meseci
Hvala na odgovorima ali problem jos nije resen

Citat:
biske86: Da ti ne trebaju redni brojevi ispred kolona koje selektuješ?

Ako ti to treba onda ide ovako:

Code (sql):

SET @broj=0;
SELECT @broj:=@broj +1 AS RedniBroj, Kolona1, Kolona2
FROM tabela;
 


RedniBroj u prvoj koloni je uvek null? Jel ovo treba da radi u MySQL Query browseru, Execute sql ili treba jos nesto?
Kako da primenim Prepared statements/Stored Procedure na ovaj problem?

Da li ima jos ideja?
Dakle, 'samo' bi mi treba niz celih brojeva kojem proizvoljno mogu da dodelim gornju granicu. Ostalo radi


Pozdrav!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 18:09 - pre 160 meseci
[digresija]
ja sam za zivota koristio mnogo razlicith reporting alata i *NIJEDAN* mi nije zahtevao da se ceo report generise iz "jednog sql-a" ... doduse nisam probao jasper .. no ovo je treci ili cetvrti post gde "neko" ima problem sa ovim jasperom da mora da izgenerise SQL koji ce da napravi ceo report ... ja iskreno mislim da vi ne znate da koristite taj jasper posto mi je neverovatno da jedan sistem za report ima takav zahtev .. no posto je to windoze tool za windoze usere - sve je moguce ... tako da proverite da li doticni jasper ima nacin da se u njemu napise skripta za generisanje reporta gde mozes da napravis petlju, pozoves 200 upita ako ti treba i slicno .. Ja cu svakako probati da pomognem uvek oko SQL-a koliko je to moguce, ali nekada stvarno trazite previse od SQL-a :D .. to je ipak samo jezik za upite ...
[/digresija]

elem .. vezano za pitanje ..

mysql nema FOR petlju u SQL-u tako da to nece ici ... ono sto mozes je da nekom stored procedurom napunis neku temporary tabelu pa da koristis nju ili da koristis neku "foru" tipa da radis selekt iz neke tabele koja znas da ima vise kolona nego ti treba pa uradis nesto tipa:

Code:

mysql> set @a=0; select @a:=@a+1 as nekibroj from INFORMATION_SCHEMA.COLUMNS limit 10;
Query OK, 0 rows affected (0.00 sec)

+----------+
| nekibroj |
+----------+
|        1 |
|        2 |
|        3 |
|        4 |
|        5 |
|        6 |
|        7 |
|        8 |
|        9 |
|       10 |
+----------+
10 rows in set (0.02 sec)


mada je malo trulo resenje ... bolje pronadji kako se skriptuje taj jasper


 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice28.01.2011. u 18:21 - pre 160 meseci
Citat:
tokajac
RedniBroj u prvoj koloni je uvek null?


zato sto si set @RedniBroj = 0; odradio u jednoj konekciji a select .. u drugoj... a vrednost vazi samo tokom jedne sesije .. query browser svaki put napravi novu konekciju ...

ako uzmes workbench i koristis njegov query prozor onda bi on trebalo da radi sve kroz jednu konekciju (jedan query tab - jedna konekcija) - bar tako radi kod mene ne secam se dal sam ga nesto posebno konfigurisao .. u svakom slucaju iz tvoje aplikacije, dokle god si unutar jedne sesije (konekcije) ta varijabla je validna .. dakle moze 2 uzastopna sql.execute bitno je samo da su u istoj konekciji
 
Odgovor na temu

tokajac

Član broj: 93240
Poruke: 123
*.dynamic.sbb.rs.



+5 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice29.01.2011. u 11:21 - pre 160 meseci
Proradilo:


Dodao sam jos jedan subreport na pocetak, tako da sad imam 3 sloja:
1) Odredjujem gornju granicu;
2) SELECTujem sa LIMIT gornja granica. U mom sluaju sam bezbedan posto ce records-a uvek biti dovoljno;
3) Jasper zaista ima counter :) koji prati broj records-a. Ako nekom bude potrebno sledeca svojstva treba podesiti za varijablu:
Code:
counterVar, java.lang.Integer, Nothing, Report, None, new Integer(V{counterVar}+1), new Integer(0)



Hvala na super smernicama, Momci! Pozdrav!
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
77.46.175.*

Sajt: biske.rs


+39 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice29.01.2011. u 14:17 - pre 160 meseci
Citat:
bogdan.kecman: zato sto si set @RedniBroj = 0; odradio u jednoj konekciji a select .. u drugoj... a vrednost vazi samo tokom jedne sesije .. query browser svaki put napravi novu konekciju ...

ako uzmes workbench i koristis njegov query prozor onda bi on trebalo da radi sve kroz jednu konekciju (jedan query tab - jedna konekcija) - bar tako radi kod mene ne secam se dal sam ga nesto posebno konfigurisao .. u svakom slucaju iz tvoje aplikacije, dokle god si unutar jedne sesije (konekcije) ta varijabla je validna .. dakle moze 2 uzastopna sql.execute bitno je samo da su u istoj konekciji


Ja nisam lepo objasnio, misliio sam da ovo koristim u proceduri, tako da bi bilo u istoj konekciji.


Citat:
tokajac: Proradilo:


Dodao sam jos jedan subreport na pocetak, tako da sad imam 3 sloja:
1) Odredjujem gornju granicu;
2) SELECTujem sa LIMIT gornja granica. U mom sluaju sam bezbedan posto ce records-a uvek biti dovoljno;
3) Jasper zaista ima counter :) koji prati broj records-a. Ako nekom bude potrebno sledeca svojstva treba podesiti za varijablu:
Code:
counterVar, java.lang.Integer, Nothing, Report, None, new Integer(V{counterVar}+1), new Integer(0)



Hvala na super smernicama, Momci! Pozdrav!


Super što je proradilo..
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice29.01.2011. u 18:31 - pre 160 meseci
ivane ti si super objasnio nego njemu nije radilo posto je terao iz qb-a koji svaki posalje u zasebnoj sesiji

tokajac, mani se qb-a i predji na wb :)
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
77.46.175.*

Sajt: biske.rs


+39 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice29.01.2011. u 19:13 - pre 160 meseci
Ja sad koristim Workbench i čini mi se da je dobar alat. Ima mana, nije savršen, ali odrađuje posao. Mada nemam baš neke prevelike zamerke ali ostaje neki čudan osećaj..Recimo kad sam radio na SQL Developeru na Oracle čini mi se da sam se mnogo bolje osećao, u smislu usuability samog alata..Mislim to je ono što čovek ne zna da objasni, neko osećanje kao da ide sve podmazano. Za ovaj vorkbenč mi se čini da ide ali po malo štuca
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Niz celih brojeva od 0 do zadate gornje granice29.01.2011. u 21:02 - pre 160 meseci
da, sql developer "klizi" ... jbg WB je ono .not tehnologija .. sta da ti kazem ... mada, usavrsice oni njega :D ... novom gazdi je stalo da ima dobar windoze gui za mysql ..
 
Odgovor na temu

[es] :: MySQL :: Niz celih brojeva od 0 do zadate gornje granice

[ Pregleda: 2287 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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