بتاريخ: 30 يناير 201016 سنة comment_183710 اخواني الفكرة بشكل عام قمت بعمل استعلام واستخدمت ال count حيث انني اقوم بالاستعلام عن بيانات معينة باستخدام ال group by وما اريده بالضبط هو انه بعد عملية الاستعلام اريد ان اقوم بعرض كافة تفاصيل البيانات الناتجة من جملة ال group by ولتوضيح الفكرة اكثر قمت بعمل المثال التالي :-بدايتا قمت بانشاء عمود جديد اسمه Type على الجدول ال emp وقمت باعطاء له القيم 1 و 2 وبشكل تلقائي كما في الصورةالان عند عمل الاستعلام بحيث يظهر ال type وعدد الموظفين لكل نوع SQL> select count(*),type 2 from emp 3 having count(*) > 1 4 group by type 5 / COUNT(*) T ---------- - 4 1 6 4 2 الا الان ما في مشكلة , كل ما اريده بعد هذه الخطوووووة اريد عمل استعلام بحيث اظهر تفاصيل جملة الاستعلام السابقة اي كما نلاحط انه لأربع موظفين كان ال type=1 ولاربع موظفين كان ال Type=2 اريد جملة استعلام بحيث تظهر 8 سطور ويكون الترتيب على النحو التالي :-1-7369 SMITH 7499 ALLEN-1 7521 WARD-17566 JONES-1 7788 SCOTT 2- 7839 KING 2 7876 ADAMS2-7900 JAMES2- حيث نلاحظ ان رقم 1 كان لكل السطور التي لها ال Type=1حيث نلاحظ ان رقم 1 كان لكل السطور التي لها ال Type=2طبعا يا شباب هذا مثال للتوضيح واريدكم أن تتخيلو ان لدي جدول فيه مئات القيم لل Type فلا اريد حد يكتب لي استعلام بسيط يحتوي نوع ال type لانه تخيل لدي العديد من القيم .قاصدكم لا تردوني تم تعديل 30 يناير 201016 سنة بواسطة المقنع2005 تقديم بلاغ
بتاريخ: 30 يناير 201016 سنة comment_183714 السلام عليكم ورحمة الله هل هذا ما تريده ؟ SQL> select empno , ename||'-'||deptno xxxx from emp order by deptno; EMPNO XXXX ---------- --------------------------------------------------- 7782 CLARK-10 7839 KING-10 7934 MILLER-10 7566 JONES-20 7902 FORD-20 7876 ADAMS-20 7369 SMITH-20 7788 SCOTT-20 7521 WARD-30 7844 TURNER-30 7499 ALLEN-30 EMPNO XXXX ---------- --------------------------------------------------- 7900 JAMES-30 7698 BLAKE-30 7654 MARTIN-30 14 rows selected. تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة كاتب الموضوع comment_183718 لا اخي أمجد ليس هذا ما اريديجب أن يكون الناتج فقط 8 اعمدة 1-7369 SMITH 7499 ALLEN-1 7521 WARD-1 7566 JONES-1 7788 SCOTT 2- 7839 KING 2 7876 ADAMS2- 7900 JAMES2- حيث أتها تفاصيل جملة الاستعلام باستخدام ال GROUB BY تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة comment_183719 الجملة التالية تؤدي الغرض SELECT ENAME||' '||EMPNO||'-'||TYPE FROM EMP WHERE TYPE IS NOT NULL ORDER BY TYPE تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة كاتب الموضوع comment_183721 ليس هذا ما اريد واشكركم اخواني انا لا اريد استخدام تعبير WHERE TYPE IS NOT NULL لانه ممكن يكون لدي مثلا لأحد الصفوف ال tYPE=4 لوحده في الجدول فلا اريد ان يظهر لأنني فقط اقوم بالاستعلام حسب group by وبشرط ان count > 1شاهدوا الصورةاريد ان يقوم بعرض فقط نتائج جملة ال group by وهي ال 8 صفوف فقط وليس 14 صف ويا شباب ما حد يقلي استخدم WHERE TYPE IS N .لانه يمكن تكون لدي قيم لل Type مفردة مثل 4 او 5 .وبالتالي هذا مثال تقريبي ...... تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة كاتب الموضوع comment_183725 الموضوع بكل اختصار اريد عرض تفاصيل جملة ال group by . تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة comment_183733 ليس هذا ما اريد واشكركم اخواني انا لا اريد استخدام تعبير WHERE TYPE IS NOT NULL لانه ممكن يكون لدي مثلا لأحد الصفوف ال tYPE=4 لوحده في الجدول فلا اريد ان يظهر لأنني فقط اقوم بالاستعلام حسب group by وبشرط ان count > 1شاهدوا الصورةاريد ان يقوم بعرض فقط نتائج جملة ال group by وهي ال 8 صفوف فقط وليس 14 صف ويا شباب ما حد يقلي استخدم WHERE TYPE IS N .لانه يمكن تكون لدي قيم لل Type مفردة مثل 4 او 5 .وبالتالي هذا مثال تقريبي ...... بامكانك تجريب التالي:SELECT EMPNO,ENAME,TYPE FROM EMP E WHERE EXISTS (SELECT TYPE FROM EMP P WHERE E.TYPE=P.TYPE)AND TYPE IN (SELECT TYPE FROM EMP GROUP BY TYPE HAVING COUNT(TYPE)>1)GROUP BY TYPE,EMPNO,ENAMEأعتقد أن هذه SELECT تؤدي المطلوب.مع الاحترام تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة كاتب الموضوع comment_183744 اخي الكريم بارك الله بك على جملة الاستعلام وهي صحيحة في النتائج بس عندي استفسار اريد ان أسألك انا لدي في الجدول الحقيقي اكثر من حقل يعني غير ال TYPE اي لدي 5 اعمدة مشتركة كيف يمكن التعديل على جملة الاستعلام .اي لدي TYPE , TYPE1 ,TYPE2,TYPE3,TYPE4,TYPE5وانا حطيت المثال السابق تقريبي للفكرة تقديم بلاغ
بتاريخ: 31 يناير 201016 سنة comment_183754 أخي الكريم (المقنع) راجع هذه المشاركة:http://www.araboug.org/ib/index.php?showtopic=39857&hl= تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.