View Full Version : تبدیل query به دستور معتبر در sql
davood59
یک شنبه 25 اردیبهشت 1390, 07:42 صبح
سلام دوستان؛
به این تصویر دقت کنید:
69927
قبلش لازمه که بگم جدول Instructor مشخصات اساتید رو نگهداری می کنه.
در کوئری اول همه حقوقهای اساتید به غیر از بیشترین حقوق رو نشون میده.
در کوئری دوم اومده و ماکزیمم حقوق رو از همه حقوقهای کمتر که در کوئری اولیه بدست اومده بود کم کرده تا بیشترین حقوق رو بدست بیاره.
حالا سوال من اینه که چه جوری کوئری بالا رو به دستورات sql تبدیل کنم؟
ممنونم میشم از راهنمایی دوستان.
محمد سلیم آبادی
دوشنبه 26 اردیبهشت 1390, 05:54 صبح
سلام،
هدف پیدا کردن بزرگترین حقوق هست. برای اینکار اومده ابتدا (در Step 1) اون حقوق هایی که کوچکتر از برخی حقوق های دیگه در همون جدول هستند رو بدست آورده. با این کار بزرگترین حقوق که از هیچ حقوقی در جدول کوچکتر نیست انتخاب نمی شود.
Finde instructor salaries that are less than some other instructor salary
حالا برای بدست آوردن بزرگترین حقوق، حقوق هایی که بزرگترین نبودن رو از تمام حقوق ها کمک کرده.
معادل تفریق جبری در SQL اینه EXCEPT. پس فرمول معادلش در SQL این میشه:
SELECT salary
FROM Instructor
EXCEPT
(
SELECT Instructor.salary
FROM Instructor, Instructor d
WHERE Instructor.salary < d.salary
)
احتمالا هدف این بوده که از تابع MAX استفاده نشه.
به هر حال روش مورد علاقه جایگزین MAX من اینه:
SELECT Salary
FROM Instructor A
WHERE NOT EXISTS
(SELECT *
FROM Instructor
WHERE salary > A.salary);
m_omrani
دوشنبه 26 اردیبهشت 1390, 09:38 صبح
except is ok except your database is SQL 2000 or SQL 7
davood59
دوشنبه 26 اردیبهشت 1390, 11:16 صبح
except is ok except your database is SQL 2000 or SQL 7
ممنون از یادآوریتون! اتفاقا اول روی 2000 تست کردم و دیدم نشد، بعدش اومدم و روی 2005 که دیدم اجرا شد. به هر حال مجددا ازتون متشکرم.
محمد سلیم آبادی
دوشنبه 26 اردیبهشت 1390, 17:18 عصر
مساله مطرح شده نیاز به یک معادل زبان SQL داشت. نه معادل T-SQL، اونم مناسب با یک نسخه ی مشخص از نرم افزار MS SQL Server (حد اقل شواهد اینو میگه)
davood59
سه شنبه 27 اردیبهشت 1390, 12:26 عصر
مساله مطرح شده نیاز به یک معادل زبان SQL داشت. نه معادل T-SQL، اونم مناسب با یک نسخه ی مشخص از نرم افزار MS SQL Server (حد اقل شواهد اینو میگه)
حق کاملا با شماست و من مجددا ازتون متشکرم، واقعا کوئری جالب و متناظر با کوئری را نوشته بودید. بخصوص بخش دوم ماکزیمم گیری خیلی جالب بود.
بازهم ازتون سپاسگزارم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.