بتاريخ: 20 يوليو 201312 سنة comment_238684 الأخوة الأعضاء السلام عليكم ورحمة الله وبركاته شهر كريم على الجميع انا عندي جدول لموظفين وبعمل تقرير بيظهر لي كل الموظفين الذكور او الأناث او الكل طبعا في جدول نوع الجنس 1 ذكر 2 انثى وعندي باراميتر اسمه P_gndr_id وفي قيمة List of values عملت الجملة دي select 0 as pk ,'الكل' from dual select 2 as pk ,'اذكر' from dual select 3 as pk ,'انثى' from dual المشكلة بما بتكون قيمة الباراميتر 1 او 2 بيشتغل وبيظهر سجلات بس لما بيكون 0 ما بيظهرش ولا سجل وانا اريد اظهار كل السجلات عندما يكون الخيار 0 فالرجاء مساعدتي بعمل هذا الشي مع العلم انني استخدم اصدار 6اي وسحبت دروس من المنتدى بخصوص هذا الشي وطبقت عليها كل العمليات بس ما مشي الحال والله يكرمنا برحمته وغفرانه وعتقنا من النار تم تعديل 22 يوليو 201312 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 20 يوليو 201312 سنة comment_238687 السلام عليكم جربي استخدام الكود التالي في الكويري: And Nvl(Gender_Code, 0) = Nvl(_gndr_id, Nvl(Gender_Code, 0)) تقديم بلاغ
بتاريخ: 22 يوليو 201312 سنة comment_238726 السلام عليكم, سيدي العزيز بما انه لا يوجد عندك قيم بقيمة 0 فلن يرجع شيء في الكويري و لكن اذا استخدمنا متغير اسمه x مثلا فسيكون الوضع كما يلي: على البراميتر فورم استخدم X كقائمة و يأخذ القيم كما في الكود التالي : select 0,'all' from dual union select 2 ,'male' from dual union select 3 ,'female' from dual و اما فب الكويري الرئيسية للتقرير نضيف ما يلي: and ( (:x=2 and gender = 2 ) or (:x=3 and gender = 3 ) or (:x=0 and gender >0 ) ) بالتوقيق تم تعديل 22 يوليو 201312 سنة بواسطة mahajneh تقديم بلاغ
بتاريخ: 22 يوليو 201312 سنة كاتب الموضوع comment_238735 And Nvl(Gender_Code, 0) = Nvl(_gndr_id, Nvl(Gender_Code, 0)) انا جربت الكود ده بس ما بيطلعش نتايج ابدا جربت وعملت الكود ده select emp_name,dept_no,gndr_id from employee where emp_name=: p_find_name and gndr_id=(case when : p_gndr_id=0 then gndr_id else gndr_id end) بالرغم اني واخذه الكود من مثال تطبيقي وشغال فيه بس بتطلع رسالة انه هناك القوس الأيمن مفقود فايش هي المشكلة تم تعديل 22 يوليو 201312 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 22 يوليو 201312 سنة comment_238749 السلام عليكم جربي هذه الطريقة: SELECT a.emp_name, a.dept_no, a.gndr_id FROM employee a WHERE a.emp_name = _find_name AND a.gndr_id IN (SELECT DECODE (_gndr_id, 2, 2, 3, 3, 0, (SELECT gndr_id FROM employee b WHERE gndr_id IN (2, 3)) ) FROM employee c) تقديم بلاغ
بتاريخ: 22 يوليو 201312 سنة comment_238759 select * from your_table where gender_id=_gndr_id or _gndr_id=0 تم تعديل 22 يوليو 201312 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 23 يوليو 201312 سنة comment_238763 ضع جملة الـ where التالية في الكويري المستخدمة وسوف تحل المشكلة ان شاء الله select .... where decode(_gndr_id,0,0,gender_column)=decode(_gndr_id,0,0,_gndr_id) تم تعديل 23 يوليو 201312 سنة بواسطة hammode90 تقديم بلاغ
بتاريخ: 25 يوليو 201312 سنة كاتب الموضوع comment_238832 السلام عليكم, سيدي العزيز بما انه لا يوجد عندك قيم بقيمة 0 فلن يرجع شيء في الكويري و لكن اذا استخدمنا متغير اسمه x مثلا فسيكون الوضع كما يلي: على البراميتر فورم استخدم X كقائمة و يأخذ القيم كما في الكود التالي : select 0,'all' from dual union select 2 ,'male' from dual union select 3 ,'female' from dual و اما فب الكويري الرئيسية للتقرير نضيف ما يلي: and ( (:x=2 and gender = 2 ) or (:x=3 and gender = 3 ) or (:x=0 and gender >0 ) ) بالتوقيق الحمدلله رب العالمين ثم الشكر موصول الك استاذي انا جربت هذه الطريقة ونجحت وجزاك الله الف خير وكل الأعضاء في المنتدى تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.