AHMED BASHA بتاريخ: 4 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 4 فبراير 2009 بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته عندي قائمة باسماء الموظفين وعاوز اعمل SELECT اسماء الموظفين المشابهين في الاسم حتى الاسم الثالث (الجد)مع العلم اني مقسمهم في طريقة التسمية الاسم الاول- الاسم الثاني -الاسم الثالث- الاسم الرابع(اللقب)شكرا وجزاكم الله خيرا استغفر الله العظيم الذي لا اله الا هو الحي القيوم واتوب اليه استغفر الله العظيم الذي لا اله الا هو الحي القيوم واتوب اليه استغفر الله العظيم الذي لا اله الا هو الحي القيوم واتوب اليه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohooo81 بتاريخ: 4 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 4 فبراير 2009 (معدل) السلام عليكم اخى جرب هذا الكودهنفترض ان اسماء الكولم هيةfname,sname,tname,fname select nullif(fname,sname),nullif(sname,tname),nullif(tname,fname) from names تم تعديل 4 فبراير 2009 بواسطة mohooo81 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
MMA بتاريخ: 5 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 5 فبراير 2009 الأخوة الكرام ، السلام عليكم ورحمة الله وبركاتة ،في البداية أشكر الأخ 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 بالتوفيق اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
AHMED BASHA بتاريخ: 5 فبراير 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 5 فبراير 2009 بسم الله الرحمن الرحيماشكر الاخوة الافاضل(moh0008-MMA) على ردهم وانا في غاية الامتنان .واشكر جميع الزملاء اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 5 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 5 فبراير 2009 الأخوة الاعزاء أعتقد أن الاخ صاحب الموضوع لايثصد كده هو يقصد عرض كل الناس الاي أسماؤهم متشابهة زي مثلا الاستعلام عرض الكل الاي متشابه إلى الجد ولكن أخي mma استعلامك سيعرض فقط الاسم المتكرر ولكن نريد عرض الكلأعتقد الحل اني نعمل elf join للجدول ياريت نحاول عمل ال query الصح وشكرا لكم جميعا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmad.Hasan بتاريخ: 6 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 6 فبراير 2009 السلام عليكماخواني....ولكن ماذا لو كانت عندي الاسماء مختلفة بـــ SPELLING ?متلا: AHMAD,AHMED???????????????? اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 6 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 6 فبراير 2009 دي سهلة يأخي باستخدام lower or upper تنحل المشكلة لكن فعلا هذا الاستعلام شاغلني وحاولت اعمله با self join إلا أنه جاء ببيانات مكررة ياريت حد يحاول يساعدنا فيه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
miash80 بتاريخ: 8 فبراير 2009 تقديم بلاغ مشاركة بتاريخ: 8 فبراير 2009 lower or upper ليست حل في هذه الحالة لان المشكلة ليست الاحرف الكبيرة او الصغيرة بل اختلفت طريقة كتابة الاسم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.