لدي تقرير مستكشف البيانات يستخدم معلمتين للتاريخ بقيم افتراضية ثابتة.
-- [params]
-- date :start_date = 2024-12-01
-- date :end_date = 2025-01-01
تعمل القيم الافتراضية الثابتة لمعظم أنواع المعلمات، ولكن بالنسبة لمعلمات التاريخ، أتمنى أن نتمكن من تعيين قيم ديناميكية، مثل يوم الاثنين من الأسبوع الحالي كتاريخ بدء، ويوم الجمعة من الأسبوع الحالي كتاريخ انتهاء:
-- [params]
-- date :start_date = cast(date_trunc('week', current_date) as date) + 0
-- date :end_date = cast(date_trunc('week', current_date) as date) + 4
^ هذا بالطبع لم ينجح.
أود بشدة الاحتفاظ بنفس التقرير مع معلمات التاريخ المكشوفة هذه حتى أتمكن من الاستمرار في تشغيل التقرير يدويًا لتواريخ مختلفة إذا احتجت إلى ذلك. ولكني أريد أيضًا استخدام نفس التقرير مع المكون الإضافي للأتمتة للنشر المتكرر حول موضوع ما باستخدام “جدولة منشور في موضوع بنتائج مستكشف البيانات”.
أعتقد أنك ستحتاج إلى “نسخ” التقرير، وأن يكون لديك تقرير محدد يتم تعويضه بشكل صحيح بناءً على التاريخ الحالي لمستكشف البيانات، ثم تقرير ثانٍ للاستخدام اليدوي.
أعلم أن وجود نسخ أمر مزعج بعض الشيء، ولكنه يبدو الحل الأبسط.
إذا أصبح الرقم مرتفعًا، فنهج رائع هو استخدام واجهة برمجة تطبيقات النقاش (discourse API) لتكوينه والحفاظ على المصدر في GitHub. وبهذه الطريقة، يمكنك أيضًا الاحتفاظ بالتاريخ وتجنب النسخ اليدوي.
هل سيعمل ذلك على نقل القيم الافتراضية إلى الاستعلام واستخدامها طالما لم يتم تحديد تاريخ؟ إذن، شيء كهذا:
-- [params]
-- null date :start_date
-- null date :end_date
SELECT id as topic_id, created_at
FROM topics
WHERE created_at > COALESCE(:start_date, CAST(date_trunc('week', current_date) AS DATE))
AND created_at < COALESCE(:end_date, CAST(date_trunc('week', current_date) AS DATE)+4)