لدينا سير عمل في منتدانا حيث نقوم بتعيين المواضيع لمجموعة، وبمجرد أن تقوم هذه المجموعة بما تشعر أنها تستطيع فعله مع موضوع معين، فإنها تزيل التعيين عن نفسها. هذا يضمن اختفاء هذه المواضيع من قائمة المواضيع التي لا تزال مسؤولة عنها.
ولأغراض إعداد التقارير الخاصة بنا (“ما نوع المواضيع التي يتم تعيينها عادةً لمجموعة ____”)، نود أن نكون قادرين على البحث في منتدانا عن أي حالات لتعيين مجموعة.
هل هناك صيغة بحث معينة لا أعرفها، أو أي أفكار حول كيفية استخراج مثل هذه التقارير؟ أحب أن أعتقد أنني فقط أفتقد بعض الصيغ، نظرًا لأن جميع المعلومات المتعلقة بتعيينات المجموعات (الحالية والسابقة) مرئية عند تصفح موضوع.
يمكنك استخراج هذه البيانات باستخدام المكون الإضافي Data Explorer.
نأمل أن يساعدك الاستعلام أدناه.
1. يسرد جميع المواضيع المعينة حاليًا لمجموعة
SELECT
g.name group_name,
a.topic_id,
a.assigned_by_user_id,
a.created_at
FROM assignments a
INNER JOIN groups g ON g.id = a.assigned_to_id
WHERE assigned_to_type = 'Group'
ORDER BY g.name, created_at DESC
2. يسرد سجل تعيين المواضيع للمجموعات
SELECT
pcf.value AS group,
p.topic_id,
p.user_id AS "assigned_by_user_id",
pcf.created_at::date
FROM posts p
INNER JOIN post_custom_fields pcf ON pcf.post_id = p.id
WHERE action_code = 'assigned_group'
AND pcf.name = 'action_code_who'
ORDER BY pcf.value, pcf.created_at DESC
لقد بدأنا في تجميع استعلام مشابه بحلول نهاية اليوم (اكتشاف جدول post_custom_fields فاجأنا)، لكن استعلامك أنظف بكثير في النهاية.
لاحظنا أن هناك بعض الإدخالات المفقودة عندما تم إعادة تعيين المواضيع مباشرة بدلاً من إلغاء تعيينها ثم تعيينها، لذلك قمت بتغيير شرط WHERE قليلاً لاستيعاب ذلك. لذلك استقرنا في النهاية على:
SELECT
pcf.value AS group,
p.topic_id,
p.user_id AS "assigned_by_user_id",
pcf.created_at::date
FROM posts p
INNER JOIN post_custom_fields pcf ON pcf.post_id = p.id
WHERE (action_code = 'assigned_group' OR action_code = 'reassigned_group')
AND pcf.name = 'action_code_who'
ORDER BY pcf.value, pcf.created_at DESC