للقيام بذلك، يمكنك كتابة استعلام SQL باستخدام الدالة COUNT(*) لحساب إجمالي عدد السجلات في جدول الحجوزات ومجموعة GROUP BY لتجميعها حسب نوع الحجز. فيما يلي استعلام قد يفيدك في هذا السياق:
sqlSELECT
'Total Booking' AS [Booking Type],
COUNT(*) AS [Total],
STRING_AGG(CONCAT([Type], ' ', COUNT(*)), ', ') AS [Booking Type Details]
FROM
YourBookingTable
GROUP BY
[Type]
يقوم هذا الاستعلام بحساب إجمالي عدد الحجوزات ويقوم بتجميعها حسب نوع الحجز. الجزء الأخير من الاستعلام (STRING_AGG) يقوم بدمج نوع الحجز وعدد الحجوزات لكل نوع في خلية واحدة، ويفصل بينهم بفاصلة وفاصلة.
يمكنك استبدال YourBookingTable
بالجدول الفعلي الذي تستخدمه. وبهذا، ستحصل على نتائج تظهر إجمالي عدد الحجوزات بالإضافة إلى تفاصيل حول أنواع الحجوزات وعددها لكل نوع.
المزيد من المعلومات
بالتأكيد، يُسعدني أن أقدم لك مزيدًا من المعلومات حول الاستعلام المقترح. في الاستعلام السابق، استخدمنا دالة COUNT(*)
لحساب إجمالي عدد الحجوزات واستخدمنا STRING_AGG
لدمج نوع الحجز مع عدد الحجوزات لكل نوع.
يُفضل أيضًا أن تتأكد من وجود فهرس على العمود الذي تستخدمه للتجميع (Type
) لتحسين أداء الاستعلام. يمكنك إضافة فهرس على هذا العمود باستخدام الأمر التالي:
sqlCREATE INDEX IX_Type ON YourBookingTable([Type]);
كما يمكنك تعديل الاستعلام لترتيب النتائج حسب عدد الحجوزات بترتيب تنازلي، مما يجعل النتائج أكثر وضوحًا وسهولة قراءة. يمكنك فعل ذلك باستخدام ORDER BY
:
sqlSELECT
'Total Booking' AS [Booking Type],
COUNT(*) AS [Total],
STRING_AGG(CONCAT([Type], ' ', COUNT(*)), ', ') AS [Booking Type Details]
FROM
YourBookingTable
GROUP BY
[Type]
ORDER BY
[Total] DESC;
هذا الاستعلام سيعرض النتائج مرتبة تنازليًا حسب إجمالي عدد الحجوزات، مما يسهل قراءتها وفهمها.