الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حذف ال Duplicate Rows في ال Left Join

بدأه hassan51993 في 25 مارس 2014 · 7 رد · 906 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

إخواني الكرام 

اقوم بعمل استعلام من 3 جداول مستخدما ال left join ولكن تظهر لدي مشكله وهي وجود تكرار في البيانات

 

post-263166-0-76543700-1395708791.png

 

علما بأني استخدم الإستعلام التالي 

SELECT     tbl_salles_bill.sb_id, ( tbl_salles_bill.sb_price_after_alll_dicount - tbl_salles_bill.sb_paid_money) as Dept,  
                      tbl_customer.cust_fName + ' ' + tbl_customer.cust_mName + ' ' + tbl_customer.cust_lName AS CustomerName, tbl_customer.cust_city, tbl_receiving_money_receipt.rmr_id, 
                       tbl_receiving_money_receipt.rmr_value AS Creditor
FROM         tbl_salles_bill INNER JOIN
                      tbl_customer ON tbl_salles_bill.cust_id = tbl_customer.cust_id  and tbl_salles_bill.sb_status='مستحق'
                      left JOIN
                      tbl_receiving_money_receipt ON tbl_customer.cust_id = tbl_receiving_money_receipt.cust_id and tbl_receiving_money_receipt.rmr_IsPaidForWhat = 'شراء دون استلام بضاعه'
WHERE     (tbl_customer.cust_id = 5)

 

 

 

post-263166-0-76543700-1395708791.png

تم تعديل هذه المشاركة بواسطة hassan51993 في 25 مارس 2014 في 03:54

#2

 ارجو المساعده

#3

try this code

SELECT    DISTINCT  
	tbl_salles_bill.sb_id, 
	(tbl_salles_bill.sb_price_after_alll_dicount - tbl_salles_bill.sb_paid_money) as Dept,  
           tbl_customer.cust_fName + ' ' + tbl_customer.cust_mName + ' ' + tbl_customer.cust_lName AS CustomerName, 
	tbl_customer.cust_city, 
	tbl_receiving_money_receipt.rmr_id, 
           tbl_receiving_money_receipt.rmr_value AS Creditor
FROM     
		tbl_salles_bill 
	INNER JOIN
           		tbl_customer 
	ON 
		tbl_salles_bill.cust_id = tbl_customer.cust_id 
	left JOIN
                      tbl_receiving_money_receipt 
	ON 
		tbl_customer.cust_id = tbl_receiving_money_receipt.cust_id 
WHERE   
		tbl_customer.cust_id = 5
	and 
		tbl_salles_bill.sb_status='مستحق'
	and 
		tbl_receiving_money_receipt.rmr_IsPaidForWhat = 'شراء دون استلام بضاعه'
#4
KARIMSOFT كتب:

 

try this code

SELECT    DISTINCT  
	tbl_salles_bill.sb_id, 
	(tbl_salles_bill.sb_price_after_alll_dicount - tbl_salles_bill.sb_paid_money) as Dept,  
           tbl_customer.cust_fName + ' ' + tbl_customer.cust_mName + ' ' + tbl_customer.cust_lName AS CustomerName, 
	tbl_customer.cust_city, 
	tbl_receiving_money_receipt.rmr_id, 
           tbl_receiving_money_receipt.rmr_value AS Creditor
FROM     
		tbl_salles_bill 
	INNER JOIN
           		tbl_customer 
	ON 
		tbl_salles_bill.cust_id = tbl_customer.cust_id 
	left JOIN
                      tbl_receiving_money_receipt 
	ON 
		tbl_customer.cust_id = tbl_receiving_money_receipt.cust_id 
WHERE   
		tbl_customer.cust_id = 5
	and 
		tbl_salles_bill.sb_status='مستحق'
	and 
		tbl_receiving_money_receipt.rmr_IsPaidForWhat = 'شراء دون استلام بضاعه'

شكرا للمساعده ولكن لا فائده   يحدث تكرار مره اخري  كما في الصوره 

ملحوظه:- لقد قمت بتغغير ال parmeter  ليظهر النتائج علي عدد اكبر من ال rowspost-263166-0-30737900-1395788075_thumb.

#5

ممكن تحدد اين الصف المكرر في الكوره السابقة

#6

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

أولاً: شكر خاص لكل أصدقائنا فى المنتدى وشكر خاص للأخ حسام على مجهوده الرائع فى المنتدى، وجعله الله فى ميزان الحسنات

 

ثانياً: ارجو توضيح نوع التقرير المطلوب، حيث أننى لم ألاحظ تكرار للبيانات ولكن التكرار يتم فى جزء من البيانات بمعنى أنك لن تجد صفين متشابهين تماماً ولكن ربما تيشابهان فى جزء منهما، وهذا طبيعى لأنك تستعرض الفواتير والدفعات المالية التابعة لها فبالتالى لو هناك فاتورة لها ثلاث دفعات مالية على سبيل المثال ستتكرر بيانات الفاتورة فى ثلاث سجلات فى حين يختلف الجزء الخاص بالدفعة المالية ،

 

لذلك نرجو توضيح نوع التقرير بالضبط هل هو تقرير تفصيلى أم تجميعى؟

 

إذا كان المقصود تقريراً تجميعياً فستستخدم إحدى دوال التجميع مثل sum بالإضافة إلى أمر التجميع group by لكى يتم جمع كل الدفعات المالية الخاصة بالفاتورة الواحدة فلا تتكرر بيانات الفاتورة

 

فى انتظار الرد بإذن الله

دعائى للجميع بالتوفيق

تم تعديل هذه المشاركة بواسطة ema2000_t في 28 مارس 2014 في 18:38

9

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

#7
ema2000_t كتب:

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

أولاً: شكر خاص لكل أصدقائنا فى المنتدى وشكر خاص للأخ حسام على مجهوده الرائع فى المنتدى، وجعله الله فى ميزان الحسنات

 

ثانياً: ارجو توضيح نوع التقرير المطلوب، حيث أننى لم ألاحظ تكرار للبيانات ولكن التكرار يتم فى جزء من البيانات بمعنى أنك لن تجد صفين متشابهين تماماً ولكن ربما تيشابهان فى جزء منهما، وهذا طبيعى لأنك تستعرض الفواتير والدفعات المالية التابعة لها فبالتالى لو هناك فاتورة لها ثلاث دفعات مالية على سبيل المثال ستتكرر بيانات الفاتورة فى ثلاث سجلات فى حين يختلف الجزء الخاص بالدفعة المالية ،

 

لذلك نرجو توضيح نوع التقرير بالضبط هل هو تقرير تفصيلى أم تجميعى؟

 

إذا كان المقصود تقريراً تجميعياً فستستخدم إحدى دوال التجميع مثل sum بالإضافة إلى أمر التجميع group by لكى يتم جمع كل الدفعات المالية الخاصة بالفاتورة الواحدة فلا تتكرر بيانات الفاتورة

 

فى انتظار الرد بإذن الله

دعائى للجميع بالتوفيق

التقرير هدفه عرض  الاموال المدين بها العميل والاموال المستحقه له  لذلك فهو تقرير تفصيلي  يجب فيه ظهور  الجزء الدائن في  بكل تفصيلاته + الجزء المدين بكل تفصيلاته + حقل تجميعي لكل منهم 

#8
hassan51993 كتب:

التقرير هدفه عرض  الاموال المدين بها العميل والاموال المستحقه له  لذلك فهو تقرير تفصيلي  يجب فيه ظهور  الجزء الدائن في  بكل تفصيلاته + الجزء المدين بكل تفصيلاته + حقل تجميعي لكل منهم 

 

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

طالما أن المطلوب تقرير مفصل فلابد من تكرار بيانات العميل لذلك ستجد أن العديد من السجلات متشابهة فى الجزء الأول منها

أدعو الله أن يجعل أعمالنا خالصة لوجهه الكريم --- وأن ينفعنا بما علمنا

Dr Sayed Tohamy

Programming Instructor

مدرب برمجة

---------------

EmaSoft2000

-------------------

مواضيع مشابهة