• 0
theAviator6699

معالجة التكرار في البيانات

سؤال

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

ظهرت عندي مشكلة في قاعدة البيانات SQL 7 وهي تكرار القيود المحاسبية, تم علاج الكود المسؤول ولكن بقي معالجة البيانات المكررة و المدخلة سابقا.

ما اريده هو حذف الاسطر المتشابهة في القيد الواحد و الابقاء على السطر الاخير, يعني لو كان هناك أربع اسطر متشابهة يخذف ثلاثة منها.

مثال:

الرقم اسم الفاتورة ح/دائن ح/مدين القيمة

1 SIV-1 ح4 ح5 100

1 SIV-1 ح4 ح5 100

1 SIV-1 ح4 ح5 100

المطلوب وضع stored procedure او function لمعالجة هذا التكرار.

مساعدتكم محل تقديري لأني لم افلح بحلها بعد جهد ووقت كبيرين, لاني لم اقدر على ابقاء القيد الاخير بالكويري العادية, لا بد من وجود كاونتر يعد القيود قبل حذفها.

شكرا جزيلا

وتقبلوا تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

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

هذا مثال لحضرتك من الألف إلى الياء .. شبيه تماماً كما تريد ..

Create Table MyTable(id int , name nvarchar(50))
GO

Insert MyTable Select 1,'S'
Insert MyTable Select 1,'S'
Insert MyTable Select 1,'S'

Insert MyTable Select 2,'Q'
Insert MyTable Select 2,'Q'
Insert MyTable Select 2,'Q'
Insert MyTable Select 2,'Q'
Insert MyTable Select 2,'Q'

Insert MyTable Select 3,'A'
Insert MyTable Select 3,'A'
Insert MyTable Select 3,'A'
Insert MyTable Select 3,'A'

Insert MyTable Select 4,'V'
Insert MyTable Select 4,'V'
Insert MyTable Select 4,'V'
Insert MyTable Select 4,'V'

Insert MyTable Select 5,'aa'

Insert MyTable Select 6,'nn'

GO

سنقوم بالعملية التالية للتخلص من التكرار ..

Declare @id int , @name Nvarchar(50) , @count bigint

Declare C Cursor For
Select id , name From MyTable
group by id, name
having count(*) > 1

Open C
Fetch Next From C Into @id , @name

While @@fetch_Status = 0
begin

Select @count = Count_big(*) From MyTable Where id = @id And name = @name
Set @count = @count - 1

Set Rowcount @count
Delete From MyTable Where id = @id And name = @name
Set Rowcount 0

Fetch Next From C Into @id , @name
end

Close C
DeAllocate C

شوف النتائج

Select * From MyTable

بالتوفيق ..

تم تعديل بواسطه imadouzoun
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .