Amir Alsaeed نشر 21 مارس 2021 أرسل تقرير نشر 21 مارس 2021 لدي جدول للموظفين في قاعدة البيانات بهذا الشكل: id department_id amount created_at 1 10 100 2017-06-01 00:00:00 2 15 250 2017-06-01 00:00:00 .... 154 10 43500 2017-12-24 00:00:00 255 15 4000 2017-12-24 00:00:00 وأريد إجراء استعلام بحيث يعيد لي السجلات مرتبة ترتيب تنازلي حسب عمود created_at ولكن لكل قسم، فلقد حاولت إجراء الاستعلام التالي: $date = Deps::where('department_id', '=', 15) ->orderBy('created_at', 'DESC') ->first(); واستطيع استعادة سجل واحد من الجدول حسب ترتيب التاريخ، ولكن كيف يمكنني استعادة السجلات التي لها رقم قسم مختلف ومرتبة ترتيب تنازلي حسب التاريخ ويتم أخذ أول تاريخ فقط من هذا الترتيب؟ اقتباس
0 Sam Ahw نشر 21 مارس 2021 أرسل تقرير نشر 21 مارس 2021 للحصول على آخر سجل لكل قسم حسب أرقام الأقسام الفريدة، يمكن تنفيذ الاستعلام التالي: select s.* from deps s left join deps s1 on s.department_id = s1.department_id and s.created_at < s1.created_at where s1.department_id is null وعن طريق Eloquent: DB::table('deps as s') ->select('s.*') ->leftJoin('deps as s1', function ($join) { $join->on('s.department_id', '=', 's1.department_id') ->whereRaw(DB::raw('s.created_at < s1.created_at')); }) ->whereNull('s1.department_id') ->get(); وبهذه الطريقة سيتم عند استعادة كل سجل مقارنته مع بقية السجلات التي تنتمي للقسم المحدد و أخذ القيمة الأصغر من التاريخ الموجود ضمن العمود created_at 1 اقتباس
السؤال
Amir Alsaeed
لدي جدول للموظفين في قاعدة البيانات بهذا الشكل:
id department_id amount created_at 1 10 100 2017-06-01 00:00:00 2 15 250 2017-06-01 00:00:00 .... 154 10 43500 2017-12-24 00:00:00 255 15 4000 2017-12-24 00:00:00
وأريد إجراء استعلام بحيث يعيد لي السجلات مرتبة ترتيب تنازلي حسب عمود created_at ولكن لكل قسم، فلقد حاولت إجراء الاستعلام التالي:
$date = Deps::where('department_id', '=', 15) ->orderBy('created_at', 'DESC') ->first();
واستطيع استعادة سجل واحد من الجدول حسب ترتيب التاريخ، ولكن كيف يمكنني استعادة السجلات التي لها رقم قسم مختلف ومرتبة ترتيب تنازلي حسب التاريخ ويتم أخذ أول تاريخ فقط من هذا الترتيب؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.