Novo

Forum kao aplikacija na telefonu

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

  • 8 odgovora
  • 4.224 pregleda

Najnovija ↓

BETWEEEN @PocetnaVrednost AND @KrajnjaVredost 02.10.2004. u 10:28 · pre 269 meseci #1
Pozdrav svima. Imam jedan problem koji me muci pa bih vas zamolio da pomognete. Evo o cemu se radi:

Zamislimo da imamo jednu tabelu u bazi i da ona sadrzi neko polje "Kolicina" tipa Integer. Ne znamo koja je ni minimlana ni maksimlna vrijednost.

Sada hocu da omogucim da korisnik moze da pretrazuje po "kolicini" tako da moze odrediti granice.

...... WHERE Kolicina BETWEEN @PocetnaVrednost AND @KrajnjaVrednost
...

Sada nije problem ako koisnik unese pocetnu i krajnu vrednost pa pretraga uspije.Ali sta ako korisnik ne unese vrednost nego hoce sve moguce rezulatate da vidi ili unese samo pocetnu ili krajnju vrijdenost, tj. postoji li neki wildcard za brojeve

Unapred hvala.
Potpis
...
Re: BETWEEEN @PocetnaVrednost AND @KrajnjaVredost 02.10.2004. u 11:19 · pre 269 meseci #3
hvala ali nisam na to mislio. Sto se toci samog Access-a BETWEEN je podrzano.

@PocetnaVrednost i @KrajnjaVrednost su parametri OleDBCOmmande ali sta ako korisnik hoce da vidi sve vrednosti.

Napr. neka imamo u tabeli sledece vrednosti :

1
2
3
4
5

Ako stavimo ..... BETWEEN @PocetnaVrednost AND @KrajnjaVrednost
gdje je :
@PocetnaVrednost=2 i
@KrajnjaVrednost= 5 - u povratku ce mo dobiti 3 i 4.

Ali ako ne navedemo jednu od ovih vrednosti onda ce mo dobiti prazan rezultat.

Problem je u tome da li postoji neki wildcard za brojeve
npr. BETWEEN * AND * (Ove radi sa textom ali ne sa brojevima)
Potpis
...
Re: BETWEEEN @PocetnaVrednost AND @KrajnjaVredost 05.10.2004. u 23:39 · pre 269 meseci #6
Problem i jeste u tome sto ima veliki broj AND i OR upita. Medjutim ako upit kreiram u kodu to nije problem no problem je ako ja taj upit zelim snimiti kao preceduru na sql serveru.

P.S. Trenutno koristim MSDE
Potpis
...
Re: BETWEEEN @PocetnaVrednost AND @KrajnjaVredost 06.10.2004. u 14:23 · pre 269 meseci #7
Ako koristis SQL proceduru, napravi da su parametri opcioni, neobavezni. Onda upotrebi IF da razdvojis slucajeve. U primeru koji ti saljem postoje samo dva slucaja - oba parametra su NULL ili nisu NULL. Ti mozes da razmotris sve moguce kombinacije i napises celu gomilu IF naredbi, pa procedura jednostavno odradi sta treba u zavisnosti od trenutne situacije.
Code:

CREATE PROCEDURE procBetween
@PocetnaVrednost int = NULL , @KrajnjaVrednost int = NULL
--- = NULL znaci da su parametri opcioni, nisu obavezni, mogu se preskciti pri pozivu procedure

IF @PocetnaVrednost IS NULL AND @KrajnjaVrednost SI NULL
begin
SELECT X,Y,Z FROM SomeTable
---- ovde nema WHERE, posto nema paramatara,  znaci prikazuju se SVI
end
ELSE  ---- parametri postoje 
begin
SELECT X,Y,Z FROM SomeTable 
WHERE X BETWEEN @PocetnaVrednost AND @KrajnjaVrednost 
GO
/* END of PROC */
end
Re: BETWEEEN @PocetnaVrednost AND @KrajnjaVredost 06.10.2004. u 14:25 · pre 269 meseci #8
Oops, greska u kucanju koda. Treba ovako:
Code:

CREATE PROCEDURE procBetween
@PocetnaVrednost int = NULL , @KrajnjaVrednost int = NULL
--- = NULL znaci da su parametri opcioni, nisu obavezni, mogu se preskciti pri pozivu procedure
AS
IF @PocetnaVrednost IS NULL AND @KrajnjaVrednost SI NULL
begin
SELECT X,Y,Z FROM SomeTable
---- ovde nema WHERE, posto nema paramatara,  znaci prikazuju se SVI
end
ELSE  ---- parametri postoje 
begin
SELECT X,Y,Z FROM SomeTable 
WHERE X BETWEEN @PocetnaVrednost AND @KrajnjaVrednost 
end
GO
/* END of PROC */
Re: BETWEEEN @PocetnaVrednost AND @KrajnjaVredost 06.10.2004. u 17:51 · pre 269 meseci #9
Pozdrav,

Mozes da iskoristis kod koji je napisao Zidar, s tim da u else delu ispitas da li su uneta oba parametra ili samo jedan od njih. Tako da ces tu da imas tri slucaja, vece od pocetne vrednosti, manje od krajnje vrednosti i between.
Potpis
dotnet
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme