मैं इस तरह दोनों आंशिक रूप से और पूरी तरह से अतिव्यापी दिनांक से मिलकर तिथि सीमाओं का एक सेट, है:को हटा दें और ओवरलैपिंग तारीख को कम पर्वतमाला
UserID StartDate EndDate
====== ========== ==========
1 2011-01-01 2011-01-02 <- A
1 2011-01-01 2011-01-10 <- A
1 2011-01-08 2011-02-15 <- A
1 2011-02-20 2011-03-10 <- B
2 2011-01-01 2011-01-20 <- C
2 2011-01-15 2011-01-25 <- C
T-SQL का उपयोग करना, मैं डेटा का एक नया सेट बनाना चाहेंगे प्रति उपयोगकर्ता, सफाया अतिव्यापी डेटा, पर्वतमाला का विस्तार और अनावश्यक डेटा जहां जरूरत को हटाने, कुछ इस तरह है, जिसके परिणामस्वरूप के साथ:
UserID StartDate EndDate
====== ========== ==========
1 2011-01-01 2011-02-15 ('A', three rows combined, extending the range)
1 2011-02-20 2011-03-10 ('B', no change, no overlaps here)
2 2011-01-01 2011-01-25 ('C', two rows combined)
कर्सर ठीक अगर जरूरत है, लेकिन अगर मैं उन्हें बिना ऐसा कर सकते हैं और भी बेहतर होगा।
के साथ बदलें
@t
क्या एसक्यूएल सर्वर, 2005+ के संस्करण? – RichardTheKiwiहां, एसक्यूएल सर्वर 2005+। –