RAIANESAMI قام بنشر مايو 9 قام بنشر مايو 9 (معدل) السلام عليكم اخواني اخواتي اريد مساعدنكم لدي جدول test ويوجد به رقم الزيون - اسم المادة -حجم المادة - تاريخ فاتورة واريد البحث عن تكرارات في مدة اقل من 03 شهور ابتداءا من اكبر تاريخ فاتورة وفقط اي في مجال أكبر تاريخ فاتورة الى أقل من تاريخ فاتورة ب 03 اشهر استعملت لكنه يظهر لي تاريخ خارج المجال SELECT t1.* FROM test AS t1 WHERE EXISTS ( SELECT 1 FROM test AS t2 WHERE t2.[رقم الزبون] = t1.[رقم الزبون] AND t2.[إسم المادة] = t1.[إسم المادة] AND t2.[حجم المادة] = t1.[حجم المادة] AND DateValue(t2.[تاريخ الفاتورة]) >= DateAdd("m", -3, DateValue(t1.[تاريخ الفاتورة])) AND DateValue(t2.[تاريخ الفاتورة]) <= DateValue(t1.[تاريخ الفاتورة]) AND t2.[تاريخ الفاتورة] <> t1.[تاريخ الفاتورة] ); تم تعديل مايو 9 بواسطه RAIANESAMI
RAIANESAMI قام بنشر مايو 9 الكاتب قام بنشر مايو 9 db2.mdb وجربت طريقة اخري ولم افلح SELECT t1.* FROM test AS t1 INNER JOIN [SELECT [رقم الزبون], [إسم المادة], [حجم المادة] FROM test GROUP BY [رقم الزبون], [إسم المادة], [حجم المادة] HAVING COUNT(*) > 1 AND MAX([تاريخ الفاتورة]) >= DateAdd("m", -3, MIN([تاريخ الفاتورة])) ]. AS t2 ON (t1.[حجم المادة] = t2.[حجم المادة]) AND (t1.[إسم المادة] = t2.[إسم المادة]) AND (t1.[رقم الزبون] = t2.[رقم الزبون]);
Foksh قام بنشر مايو 9 قام بنشر مايو 9 وعليكم السلام ورحمة الله وبركاته .. أخي الكريم ، في استعلامك ، تظهر النتائج بهذا الشكل :- استعلام1 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 8 2025-03-01 1001 سردين 1000غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ 16 2024-11-01 1006 جبن 500غ 17 2024-10-01 1006 جبن 500غ الآن كنوع من التوضح ، هل النتيجة التي تريدها = :- Query1 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 2 2025-01-01 1002 سردين 100غ 3 2025-01-01 1003 اللحم 500غ 4 2025-09-01 1004 طماطم 1000غ 5 2025-01-01 1005 طماطم 500غ 6 2025-01-01 1006 مشروب عازي 1ا 8 2025-03-01 1001 سردين 1000غ 9 2025-01-01 1001 سردين 50غ 10 2025-04-01 1002 مشروب عازي 2ل 11 2025-02-01 1006 طماطم 500غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ أم هل لك أن توضح بشكل أكبر بناءً على مثالك ما النتائج التي يجب أن تظهر لك ؟؟؟ أم هذه النتيجة :- Query2 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 8 2025-03-01 1001 سردين 1000غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ
RAIANESAMI قام بنشر مايو 9 الكاتب قام بنشر مايو 9 (معدل) السلام عليكم اخي انا اريد مثلا اذا كانت اكير تاريخ هو 01-03- 2025 للزبون اريده ان بظهر الاستعلام التواريخ التى تساوي او اقل 01-03-2025 ب 03 اشهر اي من تاريخ 01-12-2024 الى غاية 01-03-2025 اما باقي التواريخ التي هي فبل تاريخ الفاتورة 01-12-2024 لا تظهر ربما في متال الاخير هو الانسب Query2 ID تاريخ الفاتورة رقم الزبون إسم المادة حجم المادة 1 2025-03-01 1001 سردين 1000غ 8 2025-03-01 1001 سردين 1000غ 12 2025-03-01 1006 جبن 500غ 13 2025-02-20 1006 جبن 500غ 14 2025-01-01 1006 جبن 500غ 15 2024-12-01 1006 جبن 500غ تم تعديل مايو 9 بواسطه RAIANESAMI
تمت الإجابة Foksh قام بنشر مايو 9 تمت الإجابة قام بنشر مايو 9 2 دقائق مضت, RAIANESAMI said: ربما في متال الاخير هو الانسب وهذا هو الاستعلام أخي الكريم :- SELECT t1.* FROM test AS t1 INNER JOIN (SELECT a.[رقم الزبون], a.[إسم المادة], a.[حجم المادة] FROM test AS a INNER JOIN ( SELECT [رقم الزبون], [إسم المادة], [حجم المادة], MAX([تاريخ الفاتورة]) AS MaxDate FROM test GROUP BY [رقم الزبون], [إسم المادة], [حجم المادة] ) AS b ON a.[رقم الزبون] = b.[رقم الزبون] AND a.[إسم المادة] = b.[إسم المادة] AND a.[حجم المادة] = b.[حجم المادة] WHERE a.[تاريخ الفاتورة] >= DateAdd("m", -3, b.MaxDate) GROUP BY a.[رقم الزبون], a.[إسم المادة], a.[حجم المادة] HAVING COUNT(*) > 1 ) AS t2 ON (t1.[حجم المادة] = t2.[حجم المادة]) AND (t1.[إسم المادة] = t2.[إسم المادة]) AND (t1.[رقم الزبون] = t2.[رقم الزبون]) WHERE (((t1.[تاريخ الفاتورة])>=DateAdd("m",-3,(SELECT MAX(x.[تاريخ الفاتورة]) FROM test AS x WHERE x.[رقم الزبون] = t1.[رقم الزبون] AND x.[إسم المادة] = t1.[إسم المادة] AND x.[حجم المادة] = t1.[حجم المادة] )))); رغم أنني سأكرر عليك ما تم الإشارة إليه في الكثير من المواضيع ، وهي استعمالك للأسماء العربية في الحقول و أسماء الجداول ... إلخ من مكونات قاعدة البيانات .
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.