صلاح الثبيتي بتاريخ: 11 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 11 مايو 2004 السلام عليكم عندي View CREATE OR REPLACE VIEW summaries AS ( SELECT iid, iname, idesc, iprice, solddate FROM items WHERE solddate+31 < SYSDATE ); اللي ابغى اسويه اني ابغى اعرض السلع اللي بعتها الشهر الماضي ؟ فالمشكله اني مااعرف كيف اطرح واحد من عدد الشهور لاظهار النتيجه بشكل صحيح .. هل من حل ؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Online بتاريخ: 11 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 11 مايو 2004 عليكم السلام انا اقترح انك تسخدم الدالة months_betweenwhere trunc(months_between(solddate,sysdate)) =1 تحياتي اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
صلاح الثبيتي بتاريخ: 12 مايو 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 12 مايو 2004 السلام عليكم مشكور على الرد لكن يوجد توضيح و هو عند عمليه الطرح راح يكون الناتج 1- و ليس 1فقمت بالتعديل عليه CREATE OR REPLACE VIEW summaries AS ( SELECT iid, iname, idesc, iprice, solddate FROM items WHERE TRUNC(MONTHS_BETWEEN(SYSDATE, solddate)) = 1 ); اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
صلاح الثبيتي بتاريخ: 12 مايو 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 12 مايو 2004 بعد التعديل على الكوداتضح ان الكود التالي هو المطلوب و ان شاء الله الناس تستفيد من تجاربنا 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 ); طبعاً راح يعطيك البيانات كامله للشهر الفائت بالكامل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hassan بتاريخ: 21 مايو 2004 تقديم بلاغ مشاركة بتاريخ: 21 مايو 2004 بعد التعديل على الكوداتضح ان الكود التالي هو المطلوب و ان شاء الله الناس تستفيد من تجاربنا 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;)وللجميع تحياتيولكم شكري اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.