View Full Version : سوال : بهینه سازی دستور select
khorsandreza
پنج شنبه 25 خرداد 1391, 18:38 عصر
سلام
دستوری را بشکل زیر دارم چون از دستور OR استفاده کردم خروجی گزارش درست نیست دستور or باعث این اشکال میشه بنظر دوستان برای بهینه سازی جکار باید کرد تا این اشکال پیش نیاد من اصلا از دستور or در جستجو هام استفاده نمی کنم ولی استثنا در این گزارش نیاز دارم
Select fnam,lnam,pnam,dtav,nsbt FROM VIEW_IN100
WHERE OS_CODE <> '0000'
AND fnam Like('%ALI%')
OR fnam Like('%Hasan%')
AND dtav >= '13850101'
AND nsbt IN (41,42,43,44)
mohsen.net
پنج شنبه 25 خرداد 1391, 20:45 عصر
بهینه سازی با درست بودن گزارش فرق داره
بهینه سازی یعنی اینکه گزارش درست هست حالا می خواهیم از بین چند روش بهترین را انتخاب کنیم
فکر کنم اشکال کد شما با پرانتز حل بشه
WHERE OS_CODE <> '0000'
AND (fnam Like '%ALI%'
OR fnam Like '%Hasan%' )
HDDSoft2001
پنج شنبه 25 خرداد 1391, 21:37 عصر
سلام
دستوری را بشکل زیر دارم چون از دستور OR استفاده کردم خروجی گزارش درست نیست دستور or باعث این اشکال میشه بنظر دوستان برای بهینه سازی جکار باید کرد تا این اشکال پیش نیاد من اصلا از دستور or در جستجو هام استفاده نمی کنم ولی استثنا در این گزارش نیاز دارم
Select fnam,lnam,pnam,dtav,nsbt FROM VIEW_IN100
WHERE OS_CODE <> '0000'
AND fnam Like('%ALI%')
OR fnam Like('%Hasan%')
AND dtav >= '13850101'
AND nsbt IN (41,42,43,44)
select fnam, ...
from ...
where OS_Code <> '000'
and (fname like '%ali%' or fname like '%Hasan%')
and dtav >= '13850101'
and ...
khorsandreza
جمعه 26 خرداد 1391, 01:01 صبح
تشکر از دوستان که لطف داشتن مشکل همان پارنتز بود آقای mohsen.net گفتند . این گزارش را بصورت داینامیکی (توسط خود کاربر) با انتخاب ستون و شرط درست می کند در یکی از شرایط باید از دستور OR استفاده می شد (البته از دید کاربر خارج است) کاربر فقط می تواند در شرط از AND استفاده کند علی الحال مشکل حل شد
http://etaksan.ir/download/1.png
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.