بتاريخ: 18 أغسطس 201312 سنة comment_239275 السلام عليكم ورحمة الله وبركاته الاخوة الكرام احتاج مساعدة في عمل استعلام حاولت كثيرا ولكني فشلت ارجوا ممن لديه الخبرة ان يساعدني المطلوب كالتالي: اظهر عدد المواعيد لكل شهر و عدد المرضى الذين تم الكشف عليهم في نفس الشهر وعدد الامراض التي تم تشخيصها ايضا في نفس الشهر محاولتي : SELECT TO_CHAR(APP.DATEOFAPPOINTMENT,'MONTH'), COUNT(APP.APPOINTMENTID) AS "Number of Appointments", COUNT(PAT.PATIENTID) AS "Number of Patients", COUNT(DIA.DISEASEID) AS "Number of Diseases" FROM APPOINTMENT APP, PATIENT PAT, DIAGNOSED DIA, DISEASE DIS GROUP BY TO_CHAR(APP.DATEOFAPPOINTMENT,'MONTH'); حاولت ايضا من خلال الاستعلامات الفرعية ولم انجح APPOINTMENT جدول المواعيد ---------------------------------------- APPOINTMENTID DATEOFAPPOINTMENT TIMEOFAPPOINTMENT DOCTORID PATIENTID DONE CONSULTATION_ROOMNO PATIENT جدول المرضى ----------------------------------------- PATIENTID SURNAME GIVEN DOB SEX PHONEHOME PHONEWORK PHONEFAX ADDRESS SUBURB STATE POSTCODE DISEASE جدول الامراض ----------------------------------------- DISEASEID NAME CLASSIFICATIONID DIAGNOSED جدول التشخيص ----------------------------------------- -------- ---------------------------- DIAGNOSEDID APPOINTMENTID DISEASEID تقديم بلاغ
بتاريخ: 19 أغسطس 201312 سنة كاتب الموضوع comment_239285 انت مش عامل relations ليه في الكويرى ؟ اهلا اخي اسلام قمت بعمل ربط بين الجداول ولكني نسيت كتابته هنا مع ذلك يظهر رقم موحد لجميع الاكاونت الاستعلام بعد التعديل: SELECT TO_CHAR(APP.DATEOFAPPOINTMENT,'MONTH'), COUNT(APP.APPOINTMENTID) AS "Number of Appointments", COUNT(PAT.PATIENTID) AS "Number of Patients", COUNT(DIA.DISEASEID) AS "Number of Diseases" FROM APPOINTMENT APP, PATIENT PAT, DIAGNOSED DIA, DISEASE DIS WHERE APP.PATIENTID = PAT.PATIENTID AND DIA.APPOINTMENTID = APP.APPOINTMENTID AND DIS.DISEASEID = DIA.DISEASEID GROUP BY TO_CHAR(APP.DATEOFAPPOINTMENT,'MONTH'); تم تعديل 19 أغسطس 201312 سنة بواسطة bwanty تقديم بلاغ
بتاريخ: 21 أغسطس 201312 سنة comment_239369 SELECT COUNT(APP.APPOINTMENTID),COUNT(PAT.PATIENTID),COUNT(DIA.DISEASEID) FROM APPOINTMENT APP, PATIENT PAT, DIAGNOSED DIA, DISEASE DIS WHERE PAT.PATIENTID = APP.PATIENTID AND DIA.DISEASEID = DIS.DISEASEID GROUP BY TO_CHAR(APP.DATEOFAPPOINTMENT,'MONTH'); تقديم بلاغ
بتاريخ: 23 أغسطس 201312 سنة كاتب الموضوع comment_239428 SELECT COUNT(APP.APPOINTMENTID),COUNT(PAT.PATIENTID),COUNT(DIA.DISEASEID) FROM APPOINTMENT APP, PATIENT PAT, DIAGNOSED DIA, DISEASE DIS WHERE PAT.PATIENTID = APP.PATIENTID AND DIA.DISEASEID = DIS.DISEASEID GROUP BY TO_CHAR(APP.DATEOFAPPOINTMENT,'MONTH'); مع الاسف الاستعلام يعطي نفس الرقم لكل العدادات الحل بوجود استعلامات فرعية وتوصلت للنتيجة الصحيحة لكل تظهر صفوف متكررة حوالي 144 صف وانا اريد فقط 12 شهر SELECT Month, Appointments, Diseases FROM (SELECT TO_CHAR(APP.dateofappointment,'Month') AS Month, COUNT(*) AS Appointments FROM APPOINTMENT APP WHERE APP.dateofappointment BETWEEN '01-JAN-2010' AND '31-DEC-2010' GROUP BY TO_CHAR(APP.dateofappointment,'Month')), (SELECT TO_CHAR(APP.dateofappointment,'Month'), COUNT(*) AS Diseases FROM DISEASE DIS, DIAGNOSED DIA, APPOINTMENT APP WHERE APP.appointmentid = DIA.appointmentid AND DIS.diseaseid = DIA.diseaseid GROUP BY TO_CHAR(APP.dateofappointment,'Month') ) GROUP BY Month, Appointments, Diseases; تقديم بلاغ
بتاريخ: 23 أغسطس 201312 سنة كاتب الموضوع comment_239430 الشكر الجزيل لك اخي miash80 لمحاولة المساعدة تقديم بلاغ
بتاريخ: 25 أغسطس 201312 سنة comment_239476 السلام عليكم ورحمة الله وبركاته اخي الكريم قم بتجربة استخدام FULL JOIN و FULL OUTER JOIN في الكود كما يمكن استخدام FULL JOIN لعرض جميع البيانات الموجودة في الجدول الأول والموجودة في الجدول الثاني SQL> INSERT INTO EMP (empno ,ename ) VALUES(1,'AAA' ) ; SQL>SELECT empno , ename , dept.deptno , dname FROM emp FULL JOIN dept ON emp.deptno = dept.deptno ; كما يمكن استخدام FULL OUTER JOIN لعرض جميع البيانات الموجودة في الجدول الأول والموجودة في الجدول الثاني SQL>SELECT empno , ename , deptno , dname FROM emp FULL OUTER JOIN dept USING (deptno) ; جزاك الله كل خير تم تعديل 25 أغسطس 201312 سنة بواسطة jamal_rrkk تقديم بلاغ
بتاريخ: 2 سبتمبر 201312 سنة comment_239705 السلام عليكم أخي تفضل الـ Query SELECT Trunc (APP.DATEOFAPPOINTMENT , 'MM') Month , Count(APP.APPOINTMENTID) Total_Appointments , Count (Distinct APP.PATIENTID ) total_Patients ,Count (Distinct DIA.DISEASEID ) Total_Diseases FROM APPOINTMENT APP, DIAGNOSED DIA WHERE APP.APPOINTMENTID = DIA.APPOINTMENTID GROUP BY Trunc (APP.DATEOFAPPOINTMENT , 'MM'); الاستعلام الذي كتبته في البداية سليم و لكن ينقصه فقط استخدام distinctو اعتقد انه يكفي استخدام جداول APPOINTMENT و DIAGNOSED حيث يوجد بهم كل البيانات التي تريدها (عدد المواعيد و عدد المرضى و عدد الامراض) بالتوفيق تم تعديل 2 سبتمبر 201312 سنة بواسطة AElsaber تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.