![]() |
|
جلب بيانات من عدة اعمدة بشرط في 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
|
RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 16-02-2021 (15-02-2021, 03:58 PM)samnaj00 كتب : هل هذا الحل تمام ؟ أم أن هناك حلاً افضل؟ بعد التجربة تبين عدم نجاح الكود لانه يجلب اخر سجل لل id سواء كان تاريخه الاكبر او غير ذلك فلو كان تواريخ ال id على التسلسل (4/4/2021 - 5/5/2021 - 2/2/2021 ) فانه يجلب اخر سجل وهو 2/2/2021 هل من حل؟ RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - محمد عبد العزيز - 16-02-2021 أكبر تاريخ كود : SELECT a.id, a.date1, a.salary
FROM Table1 a
INNER JOIN (
SELECT id, MAX(date1) date2
FROM Table1
GROUP BY id
) b ON a.id = b.id AND a.date1 = b.date2
أكبر أجر
كود : SELECT a.id, a.date1, a.salary
FROM Table1 a
INNER JOIN (
SELECT id, MAX(salary) salary1
FROM Table1
GROUP BY id
) b ON a.id = b.id AND a.salary = b.salary1RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 16-02-2021 جزاك الله كل خير استاذي الكريم محمد خبرة واتقان بعد هذا الكود سأنظر ملياً في inner join ان شاء الله تعالى RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - محمد عبد العزيز - 16-02-2021 https://delphi4arab.net/forum/showthread.php?tid=7615 RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - larbiparadox - 16-02-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);أترك الحل الخاص بك كما هو فقط اضف أندكس لـ date1 كما في الصورة عند التنفيذ تتغير النتيجة
RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 16-02-2021 ما شاء الله عليك استاذ محمد دائماً جاهز للمعلومة استاذي الكريم larbiparadox اشكرك على الاضافة RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 17-02-2021 السلام عليكم ورحمة الله وبركاته السادة الكرام جملة INNER JOIN لم تنجح لوحدها في جلب اخر تاريخ لانه اذا كان التاريخ مكرراً لل ID مثلاً 2/2/2021 مكرراً مرتين لل ID رقم 1 فانه سيظهر التاريخان في الاستعلام لذلك فعلت في INNER JOIN كما فعلت في جملة iN باضافة حقل AUTO لاظهار النتيجة المرجوة INNER JOIN كود : drop table memory tmp_tb;
SELECT a.id, a.date1, a.salary, a.daen, a.note, a.auto INTO memory tmp_tb
FROM Table1 a
INNER JOIN (SELECT id, MAX(date1) date2 FROM Table1
GROUP BY id) b ON a.id = b.id AND a.date1 = b.date2;
SELECT a.id, a.date1, a.salary, a.daen, a.note, a.auto
FROM memory tmp_tb a
INNER JOIN (SELECT id, MAX(auto) auto2 FROM memory tmp_tb
GROUP BY id ) b ON a.id = b.id AND a.auto = b.auto2IN كود : drop table memory tmp_tb;
SELECT T1.id, T1.date1, T1.salary, T1.daen, T1.note, T1.auto into memory tmp_tb 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.date1, T2.salary, T2.daen, T2.note, T2.auto FROM memory tmp_tb T2
WHERE T2.id in(select T3.id from memory tmp_tb T3 group by T3.id)
and T2.auto in(select max(T3.auto) as auto from memory tmp_tb T3 group by T3.id);فهل يمكن جلب النتيجة بجملة واحدة فقط؟ RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - محمد عبد العزيز - 17-02-2021 (17-02-2021, 04:06 PM)samnaj00 كتب : جملة INNER JOIN لم تنجح لوحدها في جلب اخر تاريخ لانه اذا كان التاريخ مكرراً لل ID مثلاً 2/2/2021 مكرراً مرتين لل ID رقم 1 فانه سيظهر التاريخان في الاستعلامهذا غير منطقي كيف يكون لنفس الشخص أجرين بنفس التاريخ !؟ RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 17-02-2021 (17-02-2021, 04:14 PM)محمد عبد العزيز كتب :المعذرة استاذي الكريم(17-02-2021, 04:06 PM)samnaj00 كتب : جملة INNER JOIN لم تنجح لوحدها في جلب اخر تاريخ لانه اذا كان التاريخ مكرراً لل ID مثلاً 2/2/2021 مكرراً مرتين لل ID رقم 1 فانه سيظهر التاريخان في الاستعلامهذا غير منطقي هذه البيانات للمثال فقط يمكن ان نقول مثلاً دفعات نقدية من الزبون بدل اجر RE: جلب بيانات من عدة اعمدة بشرط في Sql Group By - samnaj00 - 20-02-2021 (17-02-2021, 04:06 PM)samnaj00 كتب : السلام عليكم ورحمة الله وبركاته فهل يمكن جلب النتيجة بجملة واحدة فقط؟ |