البرمجة

استرجاع المعلومات من جداول SQL Server بناءً على فترة زمنية

عند العمل مع نظام إدارة قواعد البيانات Microsoft SQL Server، يعتبر استرجاع المعلومات من جداول متعددة بناءً على شرط معين أمرًا شائعًا وضروريًا. في هذه الحالة، تبدو متطلباتك تتعلق بالحصول على معلومات من جدول A عندما يكون وقت الصف في هذا الجدول بين فترة زمنية محددة في جدول B.

لتحقيق ذلك، يمكن استخدام استعلام SQL يستند إلى جملة JOIN وشرط WHERE لتحديد الصفوف المطلوبة. اليك كيف يمكن تنفيذ ذلك:

sql
SELECT A.*, B.* FROM TableA A JOIN TableB B ON A.TTime BETWEEN B.DateTimeStart AND B.DateTimeEnd;

في هذا الاستعلام، يتم دمج (JOIN) الصفوف من جدول A مع الصفوف المطابقة في جدول B باستخدام الشرط ON. بعد ذلك، يتم استخدام شرط WHERE لتحديد الصفوف حيث يكون TTime في جدول A بين DateTimeStart و DateTimeEnd في جدول B.

يمكنك أيضًا تحديد الحقول التي ترغب في استرجاعها بدلاً من استخدام العلامة ‘*’ لاسترجاع جميع الحقول. على سبيل المثال، إذا أردت استرجاع فقط حقول محددة من الجدولين، يمكنك تعديل الاستعلام بناءً على احتياجاتك الدقيقة.

يرجى مراعاة أن هذا الاستعلام يعتمد على الفرضية أن الحقول المشتركة بين الجدولين تسمى بنفس الاسم في كل منهما (مثل TTime). يجب تعديل الاستعلام بناءً على هيكل الجدولين الفعليين الذي تعمل عليه.

المزيد من المعلومات

عند التعامل مع استرجاع المعلومات من قواعد بيانات Microsoft SQL Server، يمكن أن يكون التفصيل الإضافي حول هيكل الجدولين مفيدًا لتقديم معلومات أكثر دقة. لذا، دعنا نوسع على الاستعلام ليتناسب مع احتياجاتك الخاصة.

فرضًا أن لدينا جدول A وجدول B، ونريد استرجاع معلومات محددة من كلا الجدولين عندما يكون TTime في جدول A بين DateTimeStart و DateTimeEnd في جدول B. يمكننا تحديد حقول معينة للاسترجاع:

sql
SELECT A.TransactionID, A.TTime, A.TableAValues, B.ID, B.DateTimeStart, B.DateTimeEnd, B.TableBValues FROM TableA A JOIN TableB B ON A.TTime BETWEEN B.DateTimeStart AND B.DateTimeEnd;

في هذا الاستعلام، تم تحديد حقول معينة من الجدولين للاسترجاع، مثل TransactionID و TTime من جدول A، و ID و DateTimeStart و DateTimeEnd و TableBValues من جدول B. يمكنك تخصيص الحقول بحسب احتياجاتك الفعلية.

يُفضل أيضًا توفير المزيد من المعلومات حول هيكل الجدولين وعلاقتهما لتمكين توجيه استعلامات أكثر دقة. مثلاً، إذا كان هناك مفتاح أساسي (Primary Key) يربط بين الجدولين، يمكن استخدامه لتحسين أداء الاستعلام.

زر الذهاب إلى الأعلى