بتاريخ: 11 مايو 200421 سنة comment_6864 السلام عليكم عندي View CREATE OR REPLACE VIEW summaries AS ( SELECT iid, iname, idesc, iprice, solddate FROM items WHERE solddate+31 < SYSDATE ); اللي ابغى اسويه اني ابغى اعرض السلع اللي بعتها الشهر الماضي ؟ فالمشكله اني مااعرف كيف اطرح واحد من عدد الشهور لاظهار النتيجه بشكل صحيح .. هل من حل ؟ تقديم بلاغ
بتاريخ: 11 مايو 200421 سنة comment_6872 عليكم السلام انا اقترح انك تسخدم الدالة months_betweenwhere trunc(months_between(solddate,sysdate)) =1 تحياتي تقديم بلاغ
بتاريخ: 12 مايو 200421 سنة كاتب الموضوع comment_6887 السلام عليكم مشكور على الرد لكن يوجد توضيح و هو عند عمليه الطرح راح يكون الناتج 1- و ليس 1فقمت بالتعديل عليه CREATE OR REPLACE VIEW summaries AS ( SELECT iid, iname, idesc, iprice, solddate FROM items WHERE TRUNC(MONTHS_BETWEEN(SYSDATE, solddate)) = 1 ); تقديم بلاغ
بتاريخ: 12 مايو 200421 سنة كاتب الموضوع comment_6889 بعد التعديل على الكوداتضح ان الكود التالي هو المطلوب و ان شاء الله الناس تستفيد من تجاربنا CREATE OR REPLACE VIEW summaries AS ( SELECT iid, iname, idesc, iprice, solddate FROM items WHERE MONTHS_BETWEEN(ROUND(SYSDATE, 'MONTH'), solddate) <= 1 AND MONTHS_BETWEEN(ROUND(SYSDATE, 'MONTH'), solddate) >= 0 ); طبعاً راح يعطيك البيانات كامله للشهر الفائت بالكامل تقديم بلاغ
بتاريخ: 21 مايو 200421 سنة comment_7372 بعد التعديل على الكوداتضح ان الكود التالي هو المطلوب و ان شاء الله الناس تستفيد من تجاربنا CREATE OR REPLACE VIEW summaries AS ( SELECT iid, iname, idesc, iprice, solddate FROM items WHERE MONTHS_BETWEEN(ROUND(SYSDATE, 'MONTH'), solddate) <= 1 AND MONTHS_BETWEEN(ROUND(SYSDATE, 'MONTH'), solddate) >= 0 ); طبعاً راح يعطيك البيانات كامله للشهر الفائت بالكامل مرحبا الأخ صلاحبعد أن جربت كودك النهائي لهذا الموضوع كانت النتائج خطأ عند احتمالات متعددة وضعها أنا كأمثلةأعتقد الكود يوجد فيه خلل : لو وضعت التاريخ الحالي بعد منتصف الشهر يعني 17/5/2004 مثلا فهو سيقرب ليس لأول الشهر الحالي بل لأول الشهر التالي1/6/2004 ... مما ينتج خطأ في قيمة Round أعتقد هذا هو الحل :CREATE OR REPLACE VIEW summaries AS (SELECT iid, iname, idesc, iprice, solddateFROM items WHERE(to_number(to_char(sysdate,'MM'))-TO_NUMBER(TO_CHAR(solddate,'MM'))=1AND TO_CHAR(SYSDATE,'YYYY')=TO_CHAR(solddate,'YYYY')OR(TO_CHAR(solddate,'MM'))='12'AND TO_CHAR(SYSDATE,'MM')='1'AND TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))=TO_NUMBER(TO_CHAR(solddate,'YYYY'))+1;)وللجميع تحياتيولكم شكري تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.