التكرار بنتيجة الاستعلام
#1
قمن باجراء استعلام من جدولين لا يوجد بينهم اي علاقة والمشكل هو ضهور سجلات مكررة بنتيجة الاستعلام فما الحل من فضلكم
الرد
#2
السلام عليكم
استخدم الامر DISTINCT للحصول على القيم بدون تكرار
كود :
SELECT DISTINCT column_name,column_name FROM table_name;
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#3
شكرا على الرد السريع
لقد استغملت 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 فضهر مشكل تكرار


الملفات المرفقة
.jpg   Sans titre.jpg (الحجم : 14.8 ك ب / التحميلات : 15)
الرد
#4
السلام عليكم اخي الصورة لا تضهر جيدا لكن حسب ما رأبت ليس هناك تكرار
لان السجل الاول NewQua 300
و السجل الثالث الذي تفترض انه مكرر يضهر لي 305
و هكذا مع السجل الثاني و السجل الرابع
عفوا اخي لم افهم جيدا ما الذي تريد فعله بالضبط
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#5
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)


الملفات المرفقة
.rar   2.rar (الحجم : 15.96 ك ب / التحميلات : 29)
الرد
#6
بعد التحليل ضهر لي ان المشكل في DISTINCT مع جدولين ماهي الطريقة الصحيحة لاستعمال DISTINCT مع جدولين
SELECT DISTINCT Date_in,Quantite ,Code_Produits ,NewQua ,Nom_Produits ,Date_Sor,Code_Prod,Quantite_Sor,NewQua2,Nom_Client FROM entrees, Sorties');
الرد
#7
السلام عليكم جرب استخدام union

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#8
ولكن اين وكيف اضع distinct
الرد
#9
لا يا اخي الـ union تقوم بعمل distinct في هذه الحالة و السلام عليكم و رحمة الله
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم