विचार इस प्रकार है
- सभी बच्चे का चयन करें न्यूनतम संभव (अभिभावक) आईडी के साथ एक घंटे के भीतर आदेश। (मैं यहां मान रहा हूं कि सबसे कम ऑर्डर आईडी भी सबसे पुराना होगा ऑर्डर आईडी)।
- इन परिणामों को मूल तालिका से जोड़ें।
- अपडेट स्टेटमेंट के आधार के रूप में इन परिणामों का उपयोग करें।
एसक्यूएल स्टेटमेंट
UPDATE Orders
SET ParentOrderID = p.ParentOrderID
FROM Orders o
INNER JOIN (
SELECT ParentOrderID = MIN(o1.OrderID), OrderID = o2.OrderID
FROM Orders o1
LEFT OUTER JOIN Orders o2 ON
o2.CustomerID = o1.CustomerID
AND o2.OrderDate > o1.OrderDate
AND DATEADD(hh, -1, o2.OrderDate) < o1.OrderDate
GROUP BY o2.OrderID
) p ON p.OrderID = o.OrderID