البرمجة

كيفية استرداد بيانات SQL مع التواريخ المحددة

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

قبل كل شيء، يجب عليك استخدام استعلام JOIN لربط الجداول معًا بناءً على العلاقة بينهما، وبعد ذلك يمكنك استخدام شرط WHERE لتحديد البيانات من تاريخ معين.

لتحقيق النتيجة المطلوبة، يجب عليك أيضًا استخدام تجميع البيانات (مثل GROUP BY) والتلاعب بالبيانات للحصول على التنسيق المطلوب.

إليك استعلامًا يمكن استخدامه للحصول على النتيجة المطلوبة:

vbnet
SELECT t1.Country AS country, t2.Name AS name, t2.Value AS last, t2.Date AS current_date, t2_pre.Date AS previous_date, t2_pre.Value AS previous_value FROM Table1 t1 JOIN Table2 t2 ON t1.US_name1 = t2.Name LEFT JOIN Table2 t2_pre ON t1.US_name1 = t2_pre.Name AND t2_pre.Date = DATE_SUB(t2.Date, INTERVAL 1 DAY) WHERE t2.Date = '2014-05-01'

في هذا الاستعلام، يتم استخدام JOIN لربط Table1 و Table2 بناءً على الاسم. ثم يتم استخدام LEFT JOIN للحصول على القيمة من التاريخ السابق (previous_date) إذا كانت متوفرة.

يجب عليك استبدال أسماء الجداول والحقول بالمعلومات الفعلية في قاعدة البيانات الخاصة بك، وكذلك ضبط التاريخ المطلوب بدلاً من ‘2014-05-01’ بالتاريخ المحدد الذي ترغب في الحصول عليه.

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

بالطبع، سأقدم لك مزيدًا من المعلومات حول الاستعلام وكيفية الحصول على النتيجة المطلوبة.

في الاستعلام السابق، تم استخدام عبارة JOIN لربط الجدولين Table1 و Table2 معًا باستخدام الاسم كمفتاح للربط. يتم استخدام JOIN هنا لضمان استرداد البيانات من الصفوف التي تحتوي على الأسماء المشتركة في الجدولين.

بعد ذلك، يتم استخدام LEFT JOIN للحصول على القيمة من التاريخ السابق إذا كانت متوفرة. يتم ذلك باستخدام DATE_SUB(t2.Date, INTERVAL 1 DAY) لاسترداد التاريخ الذي يسبق تاريخ الصف الحالي بيوم واحد. هذا يتيح لك الحصول على القيمة من التاريخ السابق إذا كان متاحًا، وإلا فإن القيمة ستكون NULL.

تحديد التاريخ المحدد يتم باستخدام شرط WHERE حيث يتم تحديد تاريخ معين، مثل ‘2014-05-01’، لاسترداد البيانات المرتبطة بهذا التاريخ.

النتيجة المتوقعة لهذا الاستعلام ستتضمن:

  1. country: البلد المتعلق بالسجل.
  2. name: اسم السجل.
  3. last: القيمة الأخيرة المسجلة.
  4. current_date: التاريخ الحالي للسجل.
  5. previous_date: التاريخ السابق للسجل، إذا كان متاحًا.
  6. previous_value: القيمة في التاريخ السابق، إذا كانت متاحة.

تأكد من تعديل اسماء الجداول والحقول لتتوافق مع بياناتك الفعلية في قاعدة البيانات.

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