كيف اضع قيمتين من نفس column عبر دالة datediff في mysql

السلام عليكم ورحمة الله

عنديTable

Columns:OrderID int PK

Department varchar(100)

OrderDate date

OrderQty int

OrderTotal int

اريد ان اجمع OrderDate من نفس الcolumn لكن للاسف لم استطع و سويت self join ايضا لم ينفع الامر يرجع لي القيمة " row(s) returnd 0"

select p.orderdate,datediff(p.orderdate,m.orderdate) as d
from orders as p inner join
orders as m on p.OrderID = m.OrderID where p.OrderID =1 and
m.OrderID =5

التعليق السابق

لا التاريخ الأول 2022-05-05

والثاني 2022-06-10

هل جربت الاستعلام التالي:

SELECT p.OrderID, p.OrderDate, m.OrderID AS OrderID2, m.OrderDate AS OrderDate2, DATEDIFF(p.OrderDate, m.OrderDate) AS DateDiff
FROM orders AS p
INNER JOIN orders AS m ON p.OrderID <> m.OrderID
WHERE p.OrderID = 1;

حيث نستخدم INNER JOIN للانضمام إلى الجدول orders نفسه باستخدام الجدولين المؤقتين p و m، ثم p.OrderID <> m.OrderID لضمان أننا نقوم بإجراء الانضمام بين أوامر مختلفة (بنفس الصف) فقط، ونستخدم DATEDIFF لحساب الفارق بين تواريخ الأوامر.

والاستعلام سيعرض OrderID و OrderDate من الأمر الأصلي و OrderID2 و OrderDate2 من الأمر المقابل، بالإضافة إلى الفارق بين تواريخ الأوامر باستخدام DATEDIFF كمجال إضافي يُسمى DateDiff.