الانتقال إلى المحتوى

ايجاد التكرارت


AHMED BASHA

Recommended Posts

بسم الله الرحمن الرحيم


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

عندي قائمة باسماء الموظفين
وعاوز اعمل SELECT اسماء الموظفين المشابهين في الاسم حتى الاسم الثالث (الجد)
مع العلم اني مقسمهم في طريقة التسمية
الاسم الاول- الاسم الثاني -الاسم الثالث- الاسم الرابع(اللقب)


شكرا وجزاكم الله خيرا


استغفر الله العظيم الذي لا اله الا هو الحي القيوم واتوب اليه

استغفر الله العظيم الذي لا اله الا هو الحي القيوم واتوب اليه

استغفر الله العظيم الذي لا اله الا هو الحي القيوم واتوب اليه

رابط هذا التعليق
شارك

السلام عليكم اخى جرب هذا الكود
هنفترض ان اسماء الكولم هية

fname,sname,tname,fname

select nullif(fname,sname),nullif(sname,tname),nullif(tname,fname)
from names
تم تعديل بواسطة mohooo81
رابط هذا التعليق
شارك

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

في البداية أشكر الأخ mohooo81 علي الرد الأكثر من رائع ، بس ليا سؤال بسيط ، هل الأمر NullIf موجود في أوراكل 8 و 9 ، حقيقتاً حالياً أنا لست منصب أوراكل 9 لدي ، ولكن أعتقد أن هذا الأمر غير موجود ، إذاً فمبرمجي الأوراكل القديمة لن يستفيدون من هذا الأمر بشيء !!!

إذاً فالحل الأمثل هو الإستخداد الدائم للأوامر الإفتراضية Standerd ، بحيث أن نستخدم كونسيبت السيكوال ، بالإضافة الي ذلك أننا في الوضع الحالي نتحدث عن سيكوال ، يعني ممكن أكسيس أو أوراكل أو سيكوال سيرفر أو فوكس برو أو ..... الي آخرة.

لذلك إسمح لي أن أعرض الإجابة مرة ثانية ولكن بالشغل الإفتراضي Consept مع الإعتزار !!!


نفرض أننا لدينا جدول كما يلي :

CREATE TABLE EMP
(
  EMP_ID   NUMBER(10),
  EMP_CODE  VARCHAR2(20),
  EMP_FNAME  VARCHAR2(50),
  EMP_MNAME VARCHAR2(50),
  EMP_LNAME  VARCHAR2(50),
  EMP_SNAME  VARCHAR2(50),
  CONSTRAINT PK_EMP PRIMARY KEY(EMP_ID),
  CONSTRAINT UQ_EMP_CODE UNIQUE(EMP_CODE),
  CONSTRAINT UQ_EMP_NAME UNIQUE(EMP_FNAME,EMP_MNAME,EMP_LNAME,EMP_SNAME)
)
/



السؤال الحالي الذي يطرح نفسة ، كيف يمكنني معرفة الأسماء المتكررة في أي نوع من أنواع قواعد البيانات ؟؟؟

أفضل شيء هو إستخدام الـ Group By علي أول ثلاثة أسماء ، وإجراء عداد Count علي أي حقل من الحقول المتاحة ومن ثم إيجاد عدد التكرارات ، وأي تكرار يزيد عن 1 يتم عرضة علي الفور !!!

كما أنه من الممكن عرض الأسماء الثلاثة الأولي دون تكرار ، أو مع التكرار كما يلي :

SELECT Emp.Emp_Fname, Emp.Emp_Mname, Emp.Emp_Lname
FROM Emp
GROUP BY Emp.Emp_Fname, Emp.Emp_Mname, Emp.Emp_Lname, (Emp.Emp_Fname & ' ' & Emp.Emp_Mname & ' ' & Emp.Emp_Lname)
HAVING Count(0) >1





بالتوفيق

رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

اشكر الاخوة الافاضل(moh0008-MMA) على ردهم وانا في غاية الامتنان
.
واشكر جميع الزملاء

رابط هذا التعليق
شارك

الأخوة الاعزاء أعتقد أن الاخ صاحب الموضوع لايثصد كده هو يقصد عرض كل الناس الاي أسماؤهم متشابهة زي مثلا الاستعلام عرض الكل الاي متشابه إلى الجد ولكن أخي mma استعلامك سيعرض فقط الاسم المتكرر ولكن نريد عرض الكل

أعتقد الحل اني نعمل elf join للجدول ياريت نحاول عمل ال query الصح وشكرا لكم جميعا

رابط هذا التعليق
شارك

السلام عليكم
اخواني....ولكن ماذا لو كانت عندي الاسماء مختلفة بـــ SPELLING ?
متلا: AHMAD,AHMED
????????????????

رابط هذا التعليق
شارك

دي سهلة يأخي باستخدام lower or upper تنحل المشكلة لكن فعلا هذا الاستعلام شاغلني وحاولت اعمله با self join إلا أنه جاء ببيانات مكررة ياريت حد يحاول يساعدنا فيه

رابط هذا التعليق
شارك

lower or upper ليست حل في هذه الحالة لان المشكلة ليست الاحرف الكبيرة او الصغيرة بل اختلفت طريقة كتابة الاسم

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية