Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 3.752 pregleda

Najnovija ↓

Niz celih brojeva od 0 do zadate gornje granice 28.01.2011. u 17:33 · pre 191 mesec #1
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!
Re: Niz celih brojeva od 0 do zadate gornje granice 28.01.2011. u 18:35 · pre 191 mesec #3
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;
 
Potpis
http://biske.rs
Sviđa mi se1
Re: Niz celih brojeva od 0 do zadate gornje granice 28.01.2011. u 18:36 · pre 191 mesec #4
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!
Re: Niz celih brojeva od 0 do zadate gornje granice 28.01.2011. u 19:06 · pre 191 mesec #6
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!
Re: Niz celih brojeva od 0 do zadate gornje granice 28.01.2011. u 19:09 · pre 191 mesec #7
[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

Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Sviđa mi se1
Re: Niz celih brojeva od 0 do zadate gornje granice 28.01.2011. u 19:21 · pre 191 mesec #8
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
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Sviđa mi se1
Re: Niz celih brojeva od 0 do zadate gornje granice 29.01.2011. u 12:21 · pre 191 mesec #9
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!
Re: Niz celih brojeva od 0 do zadate gornje granice 29.01.2011. u 15:17 · pre 191 mesec #10
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..
Potpis
http://biske.rs
Re: Niz celih brojeva od 0 do zadate gornje granice 29.01.2011. u 20:13 · pre 191 mesec #12
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 :D
Potpis
http://biske.rs
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme