بتاريخ: 28 مايو 200817 سنة comment_129850 بسم الله الرحمن الرحيملو تسمحوا يا شباب اشتي اعرف ايش المشكلةانا برنامجي خاص بزيارات المندوبي للاطباءوانا الان عامل تقرير يطلع الاطباء الذين لم يزارو في فترة معينةانافكرت كيف اعمل هذا التقريرفطلعت معي هذي الفكرة select doc_no,doc_name, classe, takhasos, man_name from doctor, mandobwheremandob.man_no=doctor.man_noand doctor.man_no=:m_1and doc_no not in(select DISTINCT doc_no from daily_do wheredaily_do.date_ee between _1 and _2) الي مفادها ان جملة السكلت الداخلية تقوم باستعراض ارقام كافة الاطباء الذين تم زيارتهم.ثم الجملة الخارجية تقوم بعرض كافة الاطباء الموجودين في جدول الاطباء بشرط ان اسمة يكون مش موجود في نتيجة جملة السلكت الداخلة.التقرير الان يعمل بشكل جيد لكنلما اعمل البحث من تاريخ 1-5-2008 الى 11-5-2008 يطلع التقرير كل الطباء الذين لم يزارو بشكل جيد ولكن وهنا المشكلة عندما اعمل البحث من تاريخ 1-5-2008 الى تاريخ اكبر من 11-5-2008 يطلع لي التقرير فارغ أي انة تم زيارة كافة الاطباءمع العلم ان هناك اكثر من 100 طبيب لم يزارويعني لو عملت البحث من 1-5-2008 الى 12-5-2008 او اكثر يطلع فارعوانا الان في حيرة من امري لان اول مرة اشوف مثل هذا الشيفيا ليت حد يقلي ايش اسوي اي يعطيني فكرة اخرى اسوي بها التقرير بشكل اسهلوجزاكم الله عني خيرا تقديم بلاغ
بتاريخ: 28 مايو 200817 سنة comment_129865 السلام عليكم ورحمة الله وبركاتهبعد التحيةاخي فاللهجرب هذا الكود select doc_no,doc_name, classe, takhasos, man_name from doctor D, mandob M where M.man_no=D.man_no and doctor.man_no=:m_1 and NOT EXISTS( select DISTINCT 1 from daily_do DAO where D.doc_no = DAO.DOC_NO AND daily_do.date_ee between _1 and _2) اتمني من الله ان تجد الحل في ما سبق\وفقك الله الى ما تحب وترضيلاتنسانا من صالح الدعاءالراجاء اعلمنا اذا تم حل المشكله وشكرا تقديم بلاغ
بتاريخ: 28 مايو 200817 سنة comment_129869 select doc_no,doc_name, classe, takhasos, man_name from doctor D, mandob Mwhere M.man_no=D.man_no and D.man_no=:m_1 and NOT EXISTS(select DISTINCT 1 from daily_do DAO where D.doc_no = DAO.DOC_NO AND DAO.date_ee between _1 and _2) تقديم بلاغ
بتاريخ: 28 مايو 200817 سنة comment_129870 اسف للتكرار انشاء الله تجد الحل فهذا وشكرا كان فيه اخطاء فالاثنين السابقين من حيث ال ALIAS وشكرا SELECT doc_no, doc_name, classe, takhasos, man_name FROM doctor d, mandob m WHERE m.man_no = d.man_no AND M.man_no = :m_1 AND NOT EXISTS ( SELECT DISTINCT 1 FROM daily_do dao WHERE d.doc_no = dao.doc_no AND dao.date_ee BETWEEN _1 AND _2) تقديم بلاغ
بتاريخ: 28 مايو 200817 سنة كاتب الموضوع comment_129898 جزاك الله كل خير اخي ورح اجرببس المشكلة طلعت الاتيبعد الاطلاع على التقرير عن كثب وجدنا الاتي:عندما تشمل النتائج المطلبة في التاريخ احد التوايخ التالية 13-5-2008 و 14-5-2008 و 24-5-2008 و 25-5-2008فان التقرير يكون فارغواذا عملت بحث بين تاريخ 13-5-2008 و 13-5-2008 فان التقرير يكون فارغونفس الشي اذا عملت بحث من تاريخ 1-5-2008 الى 13-5-2008لكن لو ما شمل التقرير احد التواريخ السابقة مثلا 15-5-2088 الى 23-5-2008 فان التقرير يشتغل بشكل جيدوارجو اني وصلت الفكرة تقديم بلاغ
بتاريخ: 28 مايو 200817 سنة كاتب الموضوع comment_129900 بصراحة أخيالكود الذي قمت بكتابته ليس كود ؟؟؟؟؟؟؟؟؟؟إنما هو البلسم الشافي للتقرير الكافي( )وبصراحة أخرى سلمت يداك وزادك الله وإياي من علمهقل امييييييييييييينبس ولو فيها ازعاج ممكن تقلي ايش شرح الكودوخاصتا NOT EXISTS و DISTINCT 1وجزاك الله كل خير تقديم بلاغ
بتاريخ: 29 مايو 200817 سنة comment_129971 السلام عليكم ورحمة الله وبركاتهبعد التحيةاخي فاللهشكرا لكلماتك الرقيقة واثناءك علي شخصي المتواضعالمشكله اخي ان كودك اللقديم كان بيشتغل صح لما جملة الاستعلام الفرعية بترجع داتا لكن غير ذلك فهي ترجع null واعتقد انك تعلم ان عودة اي select فالاوركل ب null تعتبر فشل للعمليهوبما ان الجمله الداخليه قد ارجعت null اي فشلت ادت الى فشل الجمله الرئيسية وعشان كده التقرير كان بيطلع فارغاما معني exists هو هل الجمله الداخليه تحققت ام لا فاذا تحقت نفذ الرئيسية والعكس صحيحاي ان معني not exists هو الجمله الداخليه لم تتحق فاذا لم تتحق نفذ الرئيسيةdistinct 1 اي اختر اي سجل يعني حققها بس بدون تكرار يعني لو للمندوب اكثر من زيارة هات اي زيارة اي سجل ومتكررش للعميل سجلات حتي تكون اسرعاتمني ان تجد في هذه السطور المتواضعه ضالتك وشكرا لاتنسانا من صالح الدعاء وفقك الله الى ما تحب وترضي تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.