أبوعبدالملك المصري بتاريخ: 5 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 5 أغسطس 2008 السلام عليكم ورحمة الله وبركاتهأخواني الكرام أنا أريد ان اعرض مجموع الموظفين التابعين لكل إدارة يعني أظهر أن الإدارة الفلانية بها عدد موظفين كذا أنا نجحت في هذا لكن المشكلة أني أريد أن أعرض مع كل إدارة أسماء الموظفين فجربت Group By ولكنها تظهر الموظفين ولا تظهر المجموع بشكل صحيح أرجو المساعدة وشكرا وهذا هو الكود أرجو منكم يإخواني أن تكملوه لي select count(*) total , sum (decode (deptno , 10,1,0))"10", sum (decode (deptno , 20,1,0))"20", sum (decode (deptno , 30,1,0))"30" from emp; // here I want to add the group but i do and it does not work اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamed_abdelsalam بتاريخ: 5 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 5 أغسطس 2008 لو انت عاوز عدد الموظفين واسمائهم لكل ادارة ده مش ممكن لأن عدد الموظفين بيطلع في خانة واحدة ولكن اسمائهم هيكونو في اكثر من خانه فمش هينفع يكونوا في صف واحد فلو عايز تتطلع اسماء الموظفين لا تستخدم ال group function واتمنى اني اكون فهمت السؤال لانه مش واضح اوي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 5 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 5 أغسطس 2008 نعم أخي أنت فهمت السؤال لكن هناك أخ قال أنها تتم عن طريقnested lGroupingلكن لا أعرف كيف أعملها اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamed_abdelsalam بتاريخ: 6 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 6 أغسطس 2008 السلام عليكم اخي الكريماصل لو انت عاوز تظهر اسم الموظف و القسم ليه تستخدم الgrouping اصلا ما كده كده هيظهر اسم الموظف والقسم بتاعه لكل الموظفين ممكن تعمل select عادية وترتب بحسب القسمو nested grouping ممكن نستخدمها مثلا في اظهار مجموع المرتبات لكل وظيفه في القسمكالاتي select department_id,job_id,sum (salary) from employees group by department_id,job_id order by department_id اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 6 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 أغسطس 2008 (معدل) وعليكم السلام أخي أنا جربت طريقةGROUP BY CUBEبس ظهرت أعمدة كثيرة لا أعرف كيف أتحكم فيها تم تعديل 6 أغسطس 2008 بواسطة islamic_boy600 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 6 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 6 أغسطس 2008 أخى الكريم \ islamic_boy600أنا بصراحة مش عارف أيه شكل ال out put اللى انت تقصده ، أرجو ان تقوم بعمل رسم كروكى للشكل المراد ، أنا عملت اللى انا متصوره ببرنامج ال Paint فى الصورة دى :-لو تصورى خاطىء ، فأرجو أن تقوم بتحرير الصورة على برنامج ال Paint و ظبط الصورة بالشكل اللى يقارب شكل ال Out Put اللى انت عاوزه ؛ و من ثم أرفاق الصورة بالمنتدى .و شكراً اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 6 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 6 أغسطس 2008 السلام عليكم ورحمة الله وبركاتهأخي هاني شاكر لك إهتمامك وربنا يجعله سبب في مساعدة إخوانكهذا هو الشكل الذي أرغب فيه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 6 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 6 أغسطس 2008 أخى الكريم \ islamic_boy600شكراً لأرفاقك للصورة التى طلبتها ..... و لكن للأسف ال Out Put الذى ذكرته غير منطقى و لايمكن تنفيذيه ....... فعلى حسب ما فهمت من الصورة انت تريد ان تضع مجموع ال DeptNO فى اى صف من الصفوف التى تشمل رقم هذا القسم ، فعلى أى أساس سوف يتم أختيار هذا الصف !أن هذا هو الكود المنطقى لما تريده :- SELECT ename, deptno, COUNT (deptno) FROM emp GROUP BY ename, deptno ORDER BY deptno; فهو يظهر أسم الموظف و رقم القسم الذى يعمل به و مجموع الاقسام بال Group byأذا كانت لك وجهة نظر مختلفه ، فأعلمنى ..... و أنا سأدرسها .و بالتوفيق . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 7 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 أغسطس 2008 بوركت أخي هاني نعم الإستعلام الذي أوردته هو ما أريدجزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamed_abdelsalam بتاريخ: 7 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 7 أغسطس 2008 (معدل) معلش يا جماعة بس انا لما جربت الكود طلع مع كل سطر رقم1 وهو ده الطبيعي بس مابيرجعش مجموع الاقسام لان مجموع الاقسام group by الename وال deptno هيكون واحد تم تعديل 7 أغسطس 2008 بواسطة hanyfreedom اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 7 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 7 أغسطس 2008 نعم يأخي وهذا ما أسأل فيه هذا هو فكرة الإستعلام لكن المخرجات لا أريدها بهذا الشكل وفي إنتظار رد أخينا هاني اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hanyfreedom بتاريخ: 7 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 7 أغسطس 2008 هل تقصد هذا الكود :- SELECT ename, deptno, DECODE (deptno, 10, (SELECT COUNT (deptno) FROM emp WHERE deptno = 10), 20, (SELECT COUNT (deptno) FROM emp WHERE deptno = 20), 30, (SELECT COUNT (deptno) FROM emp WHERE deptno = 30), 0 ) " The Count fo DEPTNO " FROM emp GROUP BY ename, deptno ORDER BY deptno; بس ناتج مجموع الاقسام هيبقى متكرر ، مش هيبقى موجود بصف واحد من صفوف القسم - كما ذكر أخى islamic_boy600 فى صورته - هيبقى ذى ما فى هذه الصورة :-لو ليك وجهة نظر مختلفة فى ال OUT PUT او على الكود فأرجو أعلامى ..... و شكراً اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mohamed_abdelsalam بتاريخ: 8 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 8 أغسطس 2008 هوكده فعلااقرب حاجه من الصورة اللي عاوزها الاخ islamic_boy600 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 9 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 9 أغسطس 2008 شكرا يأخي هاني وبارك الله فيك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmed Zain بتاريخ: 9 أغسطس 2008 تقديم بلاغ مشاركة بتاريخ: 9 أغسطس 2008 السلام عليكم ورحمة الله وبركاتهبعد التحيةاخي فاللهاتمني ان تجد ضالتك في هذا الكود select * from ( SELECT d.DEPTNO,d.DNAME,e.ename,count(e.empNO) FROM dept d, emp e WHERE d.deptno = e.deptno group by rollup(d.DEPTNO,d.DNAME,e.ename) order by d.DEPTNO,d.DNAME ) where dname is not null; وفقك الله الى ماتحب وتضي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أبوعبدالملك المصري بتاريخ: 9 أغسطس 2008 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 9 أغسطس 2008 بارك الله فيك أخي أحمد زيدان ووفقك لكل خير هذا فعلا ما كنت أتمناه نفس شكل المخرجات وأطمع في كرمك أن تشرح الكودأعزك الله اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.