ورود

View Full Version : سوال: بازیابی آخرین خبر درج شده در جدول



mahak_f
پنج شنبه 23 دی 1389, 21:40 عصر
با سلام به همه دوستان
میخوام از یه جدول که خبرهای سازمان رو درون خودش داره هربار فقط آخرین خبر درج شدهروبازیابی کنم و به کاربر نمایش بدم
تابع aggregate در sql، برای کار با فیلدی که از نوع datetime تعریف شده چیه؟
خودم فکر کردم از تابع (اسم فیلد) last استفاده کنم. درسته؟
یا اصلا برای همچین کاری دوستان، ایده بهتری دارید؟

mehdi.mousavi
پنج شنبه 23 دی 1389, 23:02 عصر
با سلام به همه دوستان میخوام از یه جدول که خبرهای سازمان رو درون خودش داره هربار فقط آخرین خبر درج شدهروبازیابی کنم و به کاربر نمایش بدم تابع aggregate در sql، برای کار با فیلدی که از نوع datetime تعریف شده چیه؟ خودم فکر کردم از تابع (اسم فیلد) last استفاده کنم. درسته؟ یا اصلا برای همچین کاری دوستان، ایده بهتری دارید؟


سلام.
واقعیت اینه که ما چیزی به اسم "آخرین رکورد" نداریم. فرض می کنیم که شما تاریخ درج هر خبر رو در کنار هر خبر دارید، بنابراین عبارت "آخرین خبر" رو رکوردی تلقی می کنیم که تاریخ درج اون خبر (یا Published Date اش) نسبت به دیگر رکوردها، جدیدتر باشه. برای بدست آوردن چنین رکوردی، می تونیم بدین شکل عمل کنیم:


SELECT TOP 1 [Col1], [Col2] FROM [MyTable] ORDER BY [NewsDate] DESCدر واقع رکوردها رو بر اساس تاریخ نشر / درج هر خبر بصورت نزولی مرتب می کنیم، سپس اولین رکورد رو SELECT می کنیم.

موفق باشید.

tooraj_azizi_1035
جمعه 24 دی 1389, 18:19 عصر
سلام

واقعیت اینه که ما چیزی به اسم "آخرین رکورد" نداریم.
آيا نمي توان با تابع LAST آخرين مقدار وارد شده يك فيلد را گرفت؟
SELECT LAST(Field1), Last(Field2) FROM ...

حمیدرضاصادقیان
جمعه 24 دی 1389, 21:31 عصر
سلام.


آيا نمي توان با تابع LAST آخرين مقدار وارد شده يك فيلد را گرفت؟
SELECT LAST(Field1), Last(Field2) FROM

همونطور که آقای موسوی گفتند یک همچین چیزی نداریم.و باید براساس همون چیزی که اقای موسوی گفتند عمل کرد. یا مثلا اگر براساس شماره ID مرتب شده است و به صورت افزایشی اضافه شده است میتوان با استفاده از تابع max بیشترین مقدار id رو بدست آورد.