एसक्यूएल सर्वरटीएसक्यूएल - जबकि लूप का चयन करें?
ठीक है, इसलिए मैं डेटाबेस तालिका के साथ काम कर रहा हूं जिसमें पंक्तियों में माता-पिता पंक्तियां हो सकती हैं, जिसके बाद माता-पिता की पंक्तियां हो सकती हैं। मुझे रूट 'पंक्ति' का चयन करने की आवश्यकता है। मुझे ऐसा करने का सबसे अच्छा तरीका नहीं पता।
पेरेंट आईडी नामक एक फ़ील्ड है, जो उस आईडी के साथ पंक्ति में पंक्ति को जोड़ता है। जब ParentId = 0, यह मूल पंक्ति है।
SELECT Releases.Name,WorkLog.WorkLogId
FROM WorkLog,Releases
WHERE
Releases.ReleaseId = WorkLog.ReleaseId
and WorkLogDateTime >= @StartDate
and WorkLogDateTime <= @end
मैं वास्तव में, बच्चे विज्ञप्ति के रिलीज नाम की जरूरत नहीं है मैं केवल रूट रिलीज नाम चाहते हैं, तो मैं के परिणाम का चयन करना चाहते:
यह अब मेरी क्वेरी है इस तरह एक ओर जहां पाश:
WHILE (ParentReleaseId != 0)
BEGIN
@ReleaseId = ParentReleaseId
END
Select Release.Name
where Release.RealeaseId = @ReleaseId
मुझे पता है कि वाक्य रचना भयानक है, लेकिन उम्मीद है कि मैं तुम्हें मैं क्या हासिल करने के लिए कोशिश कर रहा हूँ की एक विचार दे रहा हूँ।
इस क्वेरी एक पेड़ की एक कम तत्व हो रही है, और माता पिता के माता पिता के लिए ऊपर खोज:
तो मैं वहाँ ParentReleaseId' बराबर शून्य 'साथ एक से अधिक रिहाई है अनुमान लगा रहा हूँ करने के लिए प्रत्येक रिकॉर्ड में शामिल करना चाहते है? – AakashM
क्या आप कह रहे हैं कि रिलीज तालिका पदानुक्रमित है, उदाहरण के लिए रिलीज़ एक्स में पूर्ववर्ती है, और उसके बाद उस रिलीज का अपना पूर्ववर्ती है, और इसी तरह? तो समस्या किसी भी * बाद * रिलीज के लिए निर्दिष्ट तारीखों के भीतर * मूल * रिलीज को खोजने के लिए है? –
उम्मीद है कि आप 2005 या बाद में हैं - क्या आप पुष्टि कर सकते हैं? –