[ pl4stik @ 18.01.2013. 13:26 ] @
Napravio sam upit koji vraca ako neki column sadrzi parametar ili je null ali ne mogu da dodama i vreme.. tj. izmedju datuma
Code:

SELECT        ID, Title, keyword, jobtype, DateCreated, location
FROM            Test
WHERE        (@Title IS NULL) OR
                         (Title LIKE '%' + @Title + '%') AND (@keyword IS NULL) OR
                         (keyword LIKE '%' + @keyword + '%') AND (@jobtype IS NULL) OR
                         (jobtype LIKE '%' + @jobtype + '%') AND (@location IS NULL) OR
                         (location LIKE '%' + @location + '%') AND (DateCreated BETWEEN '1/10/2013' AND '1/12/2013')

Jel vidi neko sta je problem?
[ plague @ 18.01.2013. 13:37 ] @
Gotovo sam siguran da Datum mora biti u formatu "yyyy-mm-dd", a pritom nisam siguran da li moras da castujes DateCreated u date u slucaju da je tipa datetime.
[ pl4stik @ 18.01.2013. 13:47 ] @
Kad osttavim samo
Code:
DateCreated BETWEEN '1/10/2013' AND '1/12/2013'

radi OK...
[ plague @ 18.01.2013. 13:59 ] @
Jesi li siguran da ti ostatak upita vraca neki rezultat kada izbacis proveru datuma? Kako si originalno zakljucio da je datum problem?

Bez zagrada operator AND ima prednost i prvi ce se izvrsiti.
[ pl4stik @ 18.01.2013. 14:03 ] @
OD jutros u 5 sam poceo da se igram proverio sam sve i problem je da rade zajedno
Ovo radi OK
Code:
SELECT        ID, Title, keyword, jobtype, DateCreated, location
FROM            Test
WHERE        (@Title IS NULL) OR
                         (Title LIKE '%' + @Title + '%') AND (@keyword IS NULL) OR
                         (keyword LIKE '%' + @keyword + '%') AND (@jobtype IS NULL) OR
                         (jobtype LIKE '%' + @jobtype + '%') AND (@location IS NULL) OR
                         (location LIKE '%' + @location + '%') 

Ovo radi OK
Code:
SELECT        ID, Title, keyword, jobtype, DateCreated, location
FROM            Test
WHERE        (DateCreated BETWEEN '1/10/2013' AND '1/12/2013')

Ovo ne radi OK, vraca sve
Code:
SELECT        ID, Title, keyword, jobtype, DateCreated, location
FROM            Test
WHERE        (@Title IS NULL) OR
                         (Title LIKE '%' + @Title + '%') AND (@keyword IS NULL) OR
                         (keyword LIKE '%' + @keyword + '%') AND (@jobtype IS NULL) OR
                         (jobtype LIKE '%' + @jobtype + '%') AND (@location IS NULL) OR
                         (location LIKE '%' + @location + '%') AND (DateCreated BETWEEN '1/10/2013' AND '1/12/2013')

[ plague @ 18.01.2013. 14:09 ] @
Udari zagradu tako da bude:
Code:

SELECT        ID, Title, keyword, jobtype, DateCreated, location
FROM            Test
WHERE        ((@Title IS NULL) OR
                         (Title LIKE '%' + @Title + '%') AND (@keyword IS NULL) OR
                         (keyword LIKE '%' + @keyword + '%') AND (@jobtype IS NULL) OR
                         (jobtype LIKE '%' + @jobtype + '%') AND (@location IS NULL) OR
                         (location LIKE '%' + @location + '%'))                         
                         AND (DateCreated BETWEEN '1/10/2013' AND '1/12/2013')
[ pl4stik @ 18.01.2013. 15:12 ] @
Ala si ih udarioooooo... Hvala, hvala, hvala, hvala ... Care, ako ikad dolazis u Nis rado bi ti pokazao jednu dobru kavanu...
[ dragancesu @ 19.01.2013. 22:50 ] @
Ima nekoliko upita slicnih kao

Code:
(@Title IS NULL) OR (Title LIKE '%' + @Title + '%')


Imam osecaj da je problem u parametru, verovatno imas neku formu gde unosis te parametre, i tamo ako ne upises nista je prazan string sto je razlicito od NULL

Mozda je bolje da generises upit na osnovu unosa, prakticno u WHERE da budu samo oni koje si uneo.
[ pl4stik @ 19.01.2013. 23:18 ] @
Radi bas kako treba, a i kad sam ga pravio bas sam trazio nacin da ne pravim/generisem upit u codu....