delphi4arab منتديات دلفي للعرب
التكرار بنتيجة الاستعلام - نسخة قابلة للطباعة

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



التكرار بنتيجة الاستعلام - رامي - 15-06-2013

قمن باجراء استعلام من جدولين لا يوجد بينهم اي علاقة والمشكل هو ضهور سجلات مكررة بنتيجة الاستعلام فما الحل من فضلكم


التكرار بنتيجة الاستعلام - S.FATEH - 15-06-2013

السلام عليكم
استخدم الامر DISTINCT للحصول على القيم بدون تكرار
كود :
SELECT DISTINCT column_name,column_name FROM table_name;



التكرار بنتيجة الاستعلام - رامي - 15-06-2013

شكرا على الرد السريع
لقد استغملت DISTINCT من قبل ويبق نفس المشكل
PHP كود :
SELECT   DISTINCT  Date_in,Quantite ,Code_Produits ,NewQua ,Nom_Produits ,Date_Sor,Code_Prod,Quantite_Sor,NewQua2, Nom_Client
 FROM entrees
, Sorties 
المشكل في دمج جدولين entrees, Sorties حيث بعد الفلترة باللكود
كود :
//Query1.Filter:='Code_Produits='+QuotedStr(DBLookupComboBox8.Text)+' and '+'Date_in>='''+D7+'''and Date_in<= '''+D8+'''' + ' and '+'Code_Prod='+QuotedStr(DBLookupComboBox8.Text) +' and '+'Date_Sor>='''+D7+'''and Date_Sor<= '''+D8+''''; // Query1.Filtered:=True;
تضهر النتيجة مضاعفة كما مبين في الصورة بعد الفلترة حسب اسم المادة وبين تاريخينى معينيين
حيث ان اصل المشكل هو بقيامي بوضع معطيات الجدولين entrees, Sorties للاخراج من خلال
quickrreport حيث انquickrreport لا يقبل الا dataset واحدة فبتاللي تضهر سجلات احد الجدوليين كاملة بينما لا يضهر من الجدول الثاني الا السجل الاول فكنت مضطر لدمج الجدوليين في Query1 فضهر مشكل تكرار


التكرار بنتيجة الاستعلام - S.FATEH - 15-06-2013

السلام عليكم اخي الصورة لا تضهر جيدا لكن حسب ما رأبت ليس هناك تكرار
لان السجل الاول NewQua 300
و السجل الثالث الذي تفترض انه مكرر يضهر لي 305
و هكذا مع السجل الثاني و السجل الرابع
عفوا اخي لم افهم جيدا ما الذي تريد فعله بالضبط


التكرار بنتيجة الاستعلام - رامي - 15-06-2013

1/في بداية الامر لديا جدولين entrees, Sorties اردت طبع معطياتهم مع بعض في quickrreport واحد
مع العلم ان quickrreport في خاصية dataset يجب ان تكون اما dataset للجدول entrees او للجدول
Sorties فإذ كانت للجدول entrees تضهر السجلات كاملة اما جدول Sorties فيضهر الا السجل الاول والعكس صحيح فاضطريت لدمج الجدولين في استعلام Query1 ليصبح dataset الخاص ب quickrreport هو Query1

الاستعلام الخاص ب Query1 هو لجدولين :

عند استعمال DISTINCT بجدول واحد يكون الاستعلام دون تكرار / الصورة 1
SELECT DISTINCT Date_in,Quantite ,Code_Produits ,NewQua ,Nom_Produits
FROM entrees

اما عند ستعمال DISTINCT بجدولين الاستعلام يكون به تكرار /صورة 2
SELECT DISTINCT Date_in,Quantite ,Code_Produits ,NewQua ,Nom_Produits ,Date_Sor,Code_Prod,Quantite_Sor,NewQua2, Nom_Client
FROM entrees, Sorties

كود فلترة بين تاريخين لل Query1
Query1.Filter:='Code_Produits='+QuotedStr(DBLookup ComboBox8.Text)+' and '+'Date_in>='''+D7+'''and Date_in<= '''+D8+'''' + ' and '+'Code_Prod='+QuotedStr(DBLookupComboBox8.Text) +' and '+'Date_Sor>='''+D7+'''and Date_Sor<= '''+D8+'''';
// Query1.Filtered:=True

فهل المشكل في الفلتر او في DISTINCT مع جدوليين


.rar   1.rar (الحجم : 10.3 ك ب / التحميلات : 25)


التكرار بنتيجة الاستعلام - رامي - 15-06-2013

بعد التحليل ضهر لي ان المشكل في DISTINCT مع جدولين ماهي الطريقة الصحيحة لاستعمال DISTINCT مع جدولين
SELECT DISTINCT Date_in,Quantite ,Code_Produits ,NewQua ,Nom_Produits ,Date_Sor,Code_Prod,Quantite_Sor,NewQua2,Nom_Client FROM entrees, Sorties');


التكرار بنتيجة الاستعلام - S.FATEH - 15-06-2013

السلام عليكم جرب استخدام union

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;


التكرار بنتيجة الاستعلام - رامي - 15-06-2013

ولكن اين وكيف اضع distinct


التكرار بنتيجة الاستعلام - S.FATEH - 15-06-2013

لا يا اخي الـ union تقوم بعمل distinct في هذه الحالة و السلام عليكم و رحمة الله