PDA

View Full Version : کوئری مفایسه دو تاریخ با زمان اجرای بالا



zamoozegar
یک شنبه 30 فروردین 1394, 08:21 صبح
سلام دوستان عزیز
من یک جدول دارم که سه فیلد موضوع و تاریخ ایجاد و تاریخ بروزرسانی داره
حالا می خوام کوئری بنویسم که خروجیش موضوعات بر حسب "اخرین تاریخ اتفاق(ایجاد یا بروزرسانی)"مرتب شوند.مثلا اگر جدول ورودی دارای این اطلاعات است

کد تاریخ ایجاد تاریخ بروزرسانی موضوع


1
2015-04-10
2015-04-19
موضوع1


2
2015-04-30
NULL
موضوع 2


3
2015-04-21
2015-04-29
موضوع 3



خروجی این باشد
موضوع2 (چون تاریخ ایجادش از کلیه تاریخ های ایجاد و بروز رسانی بیشتر است)
موضوع3 (چون تاریخ بروز رسانیش از تاریخ بروز رسانی موضوع 1 بیشتر است)
موضوع 1

یک کوئری می خوام که سزیع هم اجرا بشه ینی می تونم بر حسب ایجاد مرتب کنم بریزم تو تمپروری بعد تو ی حلقه یکی یکی شو با بروز رسانی مفایشه کنم اما اگر تعداد رکوردام 1 میلیون تا باشه یک حلقه 1 میلیون بار لخاد اجرا بشه حیلی کند می شه

zamoozegar
یک شنبه 30 فروردین 1394, 08:23 صبح
دوستان عزیز این عکس ضمیمه هم ربطی به این سوال ندارد اشتباه اپلود شد

ممنون می شم ی جواب به من بدین چون خیلی واجبه

SabaSabouhi
یک شنبه 30 فروردین 1394, 09:00 صبح
سلام دوستان عزیز
من یک جدول دارم که سه فیلد موضوع و تاریخ ایجاد و تاریخ بروزرسانی داره
حالا می خوام کوئری بنویسم که خروجیش موضوعات بر حسب "اخرین تاریخ اتفاق(ایجاد یا بروزرسانی)"مرتب شوند.مثلا اگر جدول ورودی دارای این اطلاعات است

کد تاریخ ایجاد تاریخ بروزرسانی موضوع


1
2015-04-10
2015-04-19
موضوع1


2
2015-04-30
NULL
موضوع 2


3
2015-04-21
2015-04-29
موضوع 3



خروجی این باشد
موضوع2 (چون تاریخ ایجادش از کلیه تاریخ های ایجاد و بروز رسانی بیشتر است)
موضوع3 (چون تاریخ بروز رسانیش از تاریخ بروز رسانی موضوع 1 بیشتر است)
موضوع 1

یک کوئری می خوام که سزیع هم اجرا بشه ینی می تونم بر حسب ایجاد مرتب کنم بریزم تو تمپروری بعد تو ی حلقه یکی یکی شو با بروز رسانی مفایشه کنم اما اگر تعداد رکوردام 1 میلیون تا باشه یک حلقه 1 میلیون بار لخاد اجرا بشه حیلی کند می شه

سلام
از فرمان ISNULL استفاده کن


ORDER BY ISNULL( Date2, Date1 )

اگه تاریخ 2 خالی بود، از تاریخ اول استفاده می‌کنه.

صبا صبوحی

zamoozegar
یک شنبه 30 فروردین 1394, 09:04 صبح
ممنون اما من مشکلم فقط بخاطر وجود فیلد نال نبود مثلا برا جدولی با این اطلاعات


کد تاریخ ایجاد تاریخ بروزرسانی موضوع


1
2015-04-10
2015-04-19
موضوع1


2
2015-04-30
NULL
موضوع 2


3
2015-04-21
2015-04-29
موضوع 3



خروجی باید
موضوع 3
موضوع 2
موضوع 1

Davidd
یک شنبه 30 فروردین 1394, 09:50 صبح
سلام. ببین این کمکت میکنه
SELECT [subject],
CASE WHEN [date1] IS NULL THEN [date2] ELSE [date1] END AS maxdate

FROM table1
ORDER BY maxdate