با استفاده از توابع DATEADD، DATEDIFF، CURRENT_DATE و EXTRACT یک پرسوجو بنویسید که برای هر رکورد جدول orders (با ستونهای order_id، order_date و delivery_date) تعداد روزهای بین سفارش و تحویل را محاسبه کند، فقط سفارشهایی را نمایش دهد که در ۳۰ روز گذشته ثبت شدهاند و یک ستون جدید به نام expected_delivery با مقدار order_date بهعلاوه ۷ روز نشان دهد.
4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:59 0.0
برای حل این مسئله از توابع تاریخ و زمان در SQL استفاده کنید: از DATEDIFF(day, order_date, delivery_date) برای محاسبه اختلاف به روز بین تاریخها، از CURRENT_DATE یا GETDATE() برای فیلتر کردن سفارشهای ثبتشده در ۳۰ روز گذشته (مثلاً DATEDIFF(day, order_date, CURRENT_DATE)
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهٔ کلیدی این است که از DATEDIFF(day, order_date, CURRENT_DATE) <= 30 برای فیلتر سفارشهای ثبتشده در ۳۰ روز گذشته استفاده کنید. برای محاسبه تفاوت روزها بین سفارش و تحویل از DATEDIFF(day, order_date, delivery_date) استفاده کنید تا تعداد روزها نمایش داده شود. ستون جدید expected_delivery را با DATEADD(day, 7, order_date) محاسبه کنید تا یک روز تحویلِ منتظَر (۷ روز بعد از سفارش) نشان داده شود. توجه کنید که بسته به موتور DB شما ممکن است CURRENT_DATE با GETDATE() یا تابعهای EXTRACT متفاوت باشد و در برخی محیطها باید از EXTRACT(DAY FROM order_date) یا ترکیبهای مشابه استفاده شود؛ همچنین مقادیر NULL در order_date یا delivery_date را در نظر بگیرید.
گزارش