View Full Version : پیداکردن دومین بزرگترین
masysh
چهارشنبه 23 دی 1388, 10:19 صبح
برای پیداکردن بزرگترین مقدار از تابع max استفاده می شود، برای پیدا کردن دومین مقدار بزرگ بعد از بزرگترین مقدار از چه روشی استفاده می شود؟
benyaminrahimi
چهارشنبه 23 دی 1388, 11:03 صبح
راه سادش اینه که id بزرگترین رو در بیاری و select که می نویسی اون id رو در نظر نگیری
تو یک stored procedure
Kamyar.Kimiyabeigi
چهارشنبه 23 دی 1388, 11:34 صبح
select max(id)
from tablename
where id not in (select max(id)
from tablename)
masysh
چهارشنبه 23 دی 1388, 12:03 عصر
ممنون از پاسختون
متاسفانه این روش جواب نمیده چون من دو مقدار بزرگ برای هر یک از موارد موجود رو میخوام نه برای یک مورد. مثلا آخرین تاریخ و تاریخ ماقبل آخر برای هر مورد موجود رو میخوام
hozouri
چهارشنبه 23 دی 1388, 12:47 عصر
برای این کار از مرتب سازی نزولی استفاده کن.
در Order By نام همان فیلدی رو که در تابع Max می خوای بنویسی استفاده کن ...
Select Top 2 Date, Quantity From tableName Order By Quantity Desc
AminSobati
چهارشنبه 23 دی 1388, 15:06 عصر
از نسخه 2005 به بعد روشهای متنوعی میشه استفاده کرد. فرضا در دیتابیس Northwind اگر سه سفارش آخر هر مشتری رو نیاز داشته باشیم:
select c.CompanyName, tmp.* from Customers c
cross apply (select top 3 o.OrderID, o.OrderDate from orders o where c.CustomerID=o.CustomerID order by o.OrderDate desc) tmp
محمد سلیم آبادی
چهارشنبه 23 دی 1388, 16:49 عصر
از نسخه 2005 به بعد روشهای متنوعی میشه استفاده کرد. فرضا در دیتابیس Northwind اگر سه سفارش آخر هر مشتری رو نیاز داشته باشیم:
select c.CompanyName, tmp.* from Customers c
cross apply (select top 3 o.OrderID, o.OrderDate from orders o where c.CustomerID=o.CustomerID order by o.OrderDate desc) tmp
و برای اینکه لیست مشتریانی که سفارش نداشته اند نیز نمایش داده شود از outer apply استفاده میکنیم.
و منظور از روش های متنوع باید استفاده از Ranking Function باشد.
masysh
پنج شنبه 24 دی 1388, 12:37 عصر
ممنون استاد عزیز متاسفانه sql من 2000
هست:گریه::عصبانی++:
AminSobati
پنج شنبه 24 دی 1388, 13:16 عصر
select * from orders o1 where OrderID in
(select top 2 OrderID from orders o2 where o1.CustomerID=o2.CustomerID order by OrderDate desc)
order by o1.CustomerID
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.