delphi4arab منتديات دلفي للعرب
جلب بيانات من عدة اعمدة بشرط في Sql Group By - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : جلب بيانات من عدة اعمدة بشرط في Sql Group By (/showthread.php?tid=11232)

الصفحات: 1 2


جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 09-02-2021

السلام عليكم ورحمة الله وبركاته
السادة الكرام

لدي table1 وفيه 3 اعمدة (id-salary-date1) ولكل id له اكثر من salary بتواريخ مختلفة

المطلوب: جلب اخر  salary مع اخر date1 لكل id

في query وضعت الكود فجلب فقط اخر تاريخ لكل id - فكيف اجلب معه راتب نفس التاريخ
كود :
select id, max(date1) as date1 from Table1 group by id;

جزاكم الله كل خير


RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - larbiparadox - 09-02-2021

وعليك السلام ورحمة الله وبركاته

الحل أنت تعرفه ، نفس الأمر مع date تفعله مع الاجر

كود :
select id, max(date1) as date1, max(salary) as salary from Table1 group by id;



RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 09-02-2021

استاذي الكريم

لا أريد تجميعاُ للاجر
بل اريد  الاجر فقط مع نفس التاريخ الاخير
و هذا الكود يعطي خطأ

كود :
select id , salary, max(date1) as date1 from Table1 group by id



RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - larbiparadox - 09-02-2021

(09-02-2021, 04:36 PM)samnaj00 كتب : استاذي الكريم

لا أريد تجميعاُ للاجر
بل اريد  الاجر فقط مع نفس التاريخ الاخير
و هذا الكود يعطي خطأ

كود :
select id , salary, max(date1) as date1 from Table1 group by id

هذه تعطي اكبر قيمة لا تقوم بالجمع

كود :
select id, max(date1) as date1, max(salary) as salary from Table1 group by id;

[صورة: 471477879.png]


RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 10-02-2021

[quote pid="52743" dateline="1612898957"]
هذه تعطي اكبر قيمة لا تقوم بالجمع

كود :
select id, max(date1) as date1, max(salary) as salary from Table1 group by id;


[/quote]

 توضيح للمطلوب : جلب اخر راتب مع تاريخ الراتب لكل ID . فما هو السبيل لذلك؟؟


حزاك الله كل خير

سؤال من فضلك  . طريقة ادراج صورة في المشاركة دون ارفاقها . مثل مشاركتك


RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - embarcadero - 10-02-2021

عملية وضع الصورة
[صورة: 603716077.png]
1 - إقونة الصورة
2 - رابط الصورة و بعدها نضغط على إدخال

لرفع صورة تحتاج موقع يدعمه المنتدى لتحميل الصور

* توجد عدة مواقع لرفع الصور من بينها 0zz0

[صورة: 519826685.png]

 01 - فتح الصورة التي تكون مخزنة في جهازك
 02 - تضغط للرفع
 03 - نسخ الرابط و وضعه كما هو مشروح في عملية وضع الصورة


RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 10-02-2021

[صورة: 865401637.jpg]


RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - larbiparadox - 12-02-2021

كود :
SELECT T1.id, T1.salary, T1.date1  FROM Table1 T1 WHERE  T1.id in (select T2.id from Table1 T2 group by T2.id) and T1.date1 in  (select  max(T2.date1) as date1 from Table1 T2 group by T2.id)



RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 13-02-2021

(12-02-2021, 11:54 PM)larbiparadox كتب :
كود :
SELECT T1.id, T1.salary, T1.date1  FROM Table1 T1 WHERE  T1.id in (select T2.id from Table1 T2 group by T2.id) and T1.date1 in  (select  max(T2.date1) as date1 from Table1 T2 group by T2.id)


استاذي الكريم



جزاك الله كل خير و ونفعنا بعلمك وخبرتك




فالخبرة والصنعة واضحة




طيب استاذي الكريم : لو كان التاريخ 3/3/2021 مكرراً مرتين ولكل تاريخ له راتب مختلف عندئذ سيظهر التاريخان في الاستعلام مع راتبيهما
كيف نجلب اخر تاريخ مع الراتب؟

-----------------------------------------------------------------
وجدت الحل المناسب بعد اضافة حقل Auto للـ Table1 نوعه Autoinc
كود :
drop table memory tmp_table2; SELECT T1.id,T1.salary,T1.date1,T1.auto,T1.daen,T1.note into memory tmp_table2 FROM Table1 T1 WHERE  T1.id in(select T2.id from Table1 T2 group by T2.id) and T1.date1 in(select max(T2.date1) as date1 from Table1 T2 group by T2.id); SELECT T2.id, T2.salary,T2.date1,T2.auto,T2.daen,T2.note FROM memory tmp_table2 T2 WHERE  T2.id in(select T3.id from memory tmp_table2 T3 group by T3.id) and T2.auto in(select  max(T3.auto) as auto from memory tmp_table2 T3 group by T3.id);

وكل الشكر للاستاذ larbiparadox


RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 15-02-2021

هل هذا الحل تمام ؟ أم أن هناك حلاً افضل؟