PDA

View Full Version : مبتدی: مشكل در تابع max



s_mokhtari
پنج شنبه 20 خرداد 1389, 11:41 صبح
با سلام:خجالت::خجالت:
من يه جستجو بر اساس كد كالا دارم حالا وقتي كاربر هر عددي كه كوچكتر از ماكزيمم كد كالا باشه پيدا ميكنه ولي ميخوام بيشتر از ماكزيمم كد كالا كدي نتونه وارد كنه اينم كدش ولي وقتي كدي كه داخل ديتابيس باشه و عدد اونا سرچ كنم هرچي غير از اين كد وارد شده است را نشون ميده در حالي كه ميخوام بيشتر از ماكزيمم وارد كرد اصلا خالي باشه و پيغام بدم كه بيشتر از ماكزيمم كد كالا چيزي وارد نكنه
ALTER PROCEDURE dbo.[3]
(@FoodID smallint)
AS SELECT MAX(FoodID) AS m, FoodID
FROM dbo.Tbl_Food
GROUP BY FoodID
HAVING (@foodid < MAX(FoodID))

با تشكر
خيلي عجله دارم
:متفکر:

pezhvakco
پنج شنبه 20 خرداد 1389, 12:08 عصر
درود :

ولي وقتي كدي كه داخل ديتابيس باشه و عدد اونا سرچ كنم هرچي غير از اين كد وارد شده است را نشون ميده
یعنی دستور جستجو درست کار نمی کنه و اگر کد باشه، پیدا نمیشه ؟
کد دستور جستجوت چیه ؟


در حالی که ميخوام بيشتر از ماكزيمم وارد كرد اصلا خالي باشه و پيغام بدم كه بيشتر از ماكزيمم كد كالا چيزي وارد نكنه
شما مگه نمیگی کد وارده داخل جدول هست پس بیش تر از ماکزیمم نیست .

فکر خوش .

s_mokhtari
پنج شنبه 20 خرداد 1389, 13:12 عصر
درود :

یعنی دستور جستجو درست کار نمی کنه و اگر کد باشه، پیدا نمیشه ؟
کد دستور جستجوت چیه ؟


شما مگه نمیگی کد وارده داخل جدول هست پس بیش تر از ماکزیمم نیست .

فکر خوش .

با سلام
دستور جستجو درست كار ميده و اگه ركوردي با اين شماره نبود تكست باكسم خالي ولي ميخوام اگه بزرگتر از ماكزيمم وارد كرد خطا بده
با تشكر

محمد سلیم آبادی
جمعه 21 خرداد 1389, 13:42 عصر
ALTER PROCEDURE dbo.[3]
(@FoodID smallint)
AS SELECT MAX(FoodID) AS m, FoodID
FROM dbo.Tbl_Food
GROUP BY FoodID
HAVING (@foodid < MAX(FoodID))

این کدی هست که شما در حال استفاده از آن هستین.
وقتی که بر اساس ستون FoodID گروه بندی انجام داده این دیگه چرا از تابع MAX رو این ستون در ماده ی HAVING استفاده کردین؟

s_mokhtari
جمعه 21 خرداد 1389, 14:11 عصر
ALTER PROCEDURE dbo.[3]
(@FoodID smallint)
AS SELECT MAX(FoodID) AS m, FoodID
FROM dbo.Tbl_Food
GROUP BY FoodID
HAVING (@foodid < MAX(FoodID))
این کدی هست که شما در حال استفاده از آن هستین.
وقتی که بر اساس ستون FoodID گروه بندی انجام داده این دیگه چرا از تابع MAX رو این ستون در ماده ی HAVING استفاده کردین؟
با سلام
چون ميخوام كدي كه وارد كرده بزرگتر از ماكزيمم كد غذا نباشه برا همين هم ماكزيمم هم پارامتر رو چك كردم
با تشكر

محمد سلیم آبادی
جمعه 21 خرداد 1389, 14:17 عصر
با سلام
چون ميخوام كدي كه وارد كرده بزرگتر از ماكزيمم كد غذا نباشه برا همين هم ماكزيمم هم پارامتر رو چك كردم
با تشكر

من وقتی می گم چرا یعنی در کد تان اشتباه وجود داره.
یکبار دقیق کوئری که نوشتین را بخوانید به اشتباهتون پی می برین.
شما گروه بندی بر اساس FoodID انجام دادین دوباره MAX این FoodID را گرفین. متوجه شدین؟

میخواهین در صورتی که پارامتر ورودی از بزرگترین FoodID بزرگ تر بود پیغامی داده بشه؟
باید به این شکل انجام بدین:



IF @MAX > (SELECT MAX(FoodID) FROM table) THEN ....


بازم میگم تا چند نمونه از داده هایتون نبینم نمی تونم بفهمم چی می خواهین.

pezhvakco
شنبه 22 خرداد 1389, 08:31 صبح
چون ميخوام كدي كه وارد كرده بزرگتر از ماكزيمم كد غذا نباشه برا همين هم ماكزيمم هم پارامتر رو چك كردم
اگه شما می خوای کد وارده از کدهای موجود بیش تر نباشه، چرا گروه بندی می کنی ؟

فکر خوش .

s_mokhtari
شنبه 22 خرداد 1389, 11:12 صبح
اگه شما می خوای کد وارده از کدهای موجود بیش تر نباشه، چرا گروه بندی می کنی ؟

فکر خوش .
با سلام
از همه دوستان متشكرم مشكلم حل شد ولي وقتي تابع ماكزيمم ستونش خالي باشه مجبورم توي تابع عدد 1 را برگردونم چون خالي براي رفع اين مشكل توي اسكيوال راهي است كه ديگه نخوام تو كد نويسي چك كنم اگه خالي بود 1 را برگردونه
با تشكر:افسرده:

pezhvakco
شنبه 22 خرداد 1389, 12:23 عصر
امتحان کن :

Select Mx=IsNull(Max(shomare),0)+1 From Table

فکر خوش.

s_mokhtari
شنبه 22 خرداد 1389, 13:09 عصر
امتحان کن :

Select Mx=IsNull(Max(shomare),0)+1 From Tableفکر خوش.
با سلام
خيلي خيلي ممنونم از راهنماييت دوست عزيزم
فقط دوباره يه سوال پارامتر دوم isnull برا چيه
مشكلم حل شد ولي ميخوام بدونم اين تابع پارامترش چيه
ممنون:تشویق::تشویق:

pezhvakco
شنبه 22 خرداد 1389, 13:25 عصر
فقط دوباره يه سوال پارامتر دوم isnull برا چيه

IsNull(Max(shomare),0)
یه دستور شرطی هست : مقدار درخواستی "در این جا Max " رو به دست بیار و اگه Null بود آنگاه خروجی رو همون پارامتر دوم " صفر " در نظر بگیر .

فکر خوش .