Zoque.Forum
»
SQL sorguda %10 -+ deger getirmek
|
| Veritabanları MySQL , MSSQL, SQL, Access, Oracle |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Üyelik Tarihi: 10.05.2005
Yer: konya
Yaş: 35
Mesaj: 44
|
SQL sorguda %10 -+ deger getirmek
arkadaşlar aşağıda çalışan bir sorgu var.
veritabanında çıkısdevri isimli tabloda arama yaparken formdan girilen degerin %10 üstü veya %10 altında bakacak yani formdan gelen cikisdevri= 4,6 ise bunu hem +%10 5,6 hem -%10 3,6 şeklinde listeleyecek... bunun için ne yapmam gerekli nasıl bir koşul tanımlamam gerekir yardımcı olurmusunuz.? |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 10.05.2005
Yer: konya
Yaş: 35
Mesaj: 44
|
Re: SQL sorguda %10 -+ deger getirmek
artieksi = cikisdevri * cikistolerans / 100
SQL = "SELECT * FROM urun WHERE motorgucu LIKE '%"&motorgucu&"%' and cikisdevri BETWEEN '"&cikisdevri-artieksi&"' and '"&cikisdevri+artieksi&"' and yuksinifi LIKE '%"&yuksinifi&"%' and calismasaati LIKE '%"&calismasaati&"%' and startStopSayisi LIKE '%"&startStopSayisi&"%' and cikisdevri between " & ORDER BY id DESC " bu şekilde yaptım olmadı hatam nerede ? |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 07.03.2007
Yer: Ankara
Mesaj: 165
|
Re: SQL sorguda %10 -+ deger getirmek
Merhaba
'%"&motorgucu&"%' bu sekilde yaptıgında +-%10 olayı olmuyor. Bu yaptığını açıklayacak olursak; - motorgucu değişkeninin sağını ve solunu açık bırakıyorsun. Mesela motorgücü 4,6 diyelim. Eğer veritabanında 14,6 veya 4,6666 varsa bunlar listelenecektir, çünkü %4,6% yaptık. Gelelim senin olayına; <% 'Gelen verimiz örnekde 4,6 olsun motor_gucu=CInt(4,6) 'Şimdi yapmak istediğimiz 3,6 ile 5,6 arasını listeletmek. +1,0 ve -1,0. 'Önce +1,0 yapalım. motor_guc_aralik_1=CInt(motor_gucu+1) 'Şimdide -1,0. motor_guc_aralik_2=CInt(motor_gucu-1) 'SQL Cümlemizi düzeltelim. SQL = "Select * from Urun Where motorgucu<='" & motor_guc_aralik_1 & "' and motorgucu>='" & motor_guc_aralik_2 & "' ..... geri kalan verilerin." %> Bu alanı Between ile de yapman mümkün. Orasını yapmakta artık biraz araştırma yapmana kalıyor. Kolay gelsin ![]() |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 10.05.2005
Yer: konya
Yaş: 35
Mesaj: 44
|
Re: SQL sorguda %10 -+ deger getirmek
teşekkürler güzel fikir denedim ama (yanlış yapmışda olabilirim)
olmadı olamadı malesef Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC Microsoft Access Sürücüsü] Ölçüt ifadesinde veri türü uyuşmazlığı. /oztekfen/www/arama1.ASP, line 103 cint yada cInt olmadı bilgi: cikisdevri tabloda sayı' yüzdüm yüzdük kuyruguna geldik şunun hadi bi el atın lütfen... PHP Code:
|
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 10.05.2005
Yer: konya
Yaş: 35
Mesaj: 44
|
Re: SQL sorguda %10 -+ deger getirmek
yazdıktan sonra farkettim hatamı dikkatsizligimin kurbanı oluyorum hep
aşağıdaki şekilde düzelttim cikisdevri sayıydı metin yaptım PHP Code:
FORMDAN GELEN VERILER ŞUNLARDIR altkats=MRA serisi baglantiCapi=0 calismasaati=8 yuksinifi=U motorgucu=0.12 baglantitipi=0 cikisdevri=4.6 startStopSayisi=0-100 cikistolerans=10 SQL çıktısı Select * from Urun Where cikisdevri <='56' and cikisdevri >='36' and motorgucu LIKE '%0,12%' and yuksinifi LIKE '%U%' and calismasaati LIKE '%8%' and startStopSayisi LIKE '%0-100%' ORDER BY id ASC 463656 görüyorum yani veritabanında degerler 4,6 veya 50 veya 1,12 gibi.. formda girilen deger 4.6 (noktalarıda virgüle çeviriyorum) eee where is the problem..? |
|
|
|