dbo.MatchDate (@ दिनांक) : एक इनलाइन TVF जो dbo से परिणाम देता है मरीजों तालिका। इनलाइन टीवीएफ ये कॉलम लौटाता है: रोआई आईडी और percentmatch ।
मेरे पास अभी तक यह क्वेरी है:
<कोड> # Temp2 (RowNumber, ValFromFunc, FuncWeight, प्रतिशत) में डालने dbo.MatchDate (@date) से RowNumber, d.PercentMatch, @constVal, d.PercentMatch * @constVal चयन घ भीतरी dbo.Patients में शामिल होने के P पर d.RowNumber = p.RowId आंतरिक शामिल dbo.Results rs पर rsRowId = d.RowNumber जहां p.ModifiedAt & gt; RsmodifiedAt
मुझे ModifiedAt dbo.MatchDate (@date) फ़ंक्शन द्वारा dbo.Patients तालिका ModifiedAt ResultsStored तालिका में RowId के एक ही रूप में dbo द्वारा दिया साथ कोड> से अधिक है। MatchDate (@date) । के बाद से dbo.MatchDate (@date) केवल RowId और PercentMatch देता है, प्राप्त करने के लिए ModifiedAt उन पंक्तियों की, मैं रोगी तालिका रोआईड कॉलम में शामिल हो गए। तब तुलना के लिए, प्राप्त करने के लिए ModifiedAt से ResultsStored तालिका, मैं इसे आगे dbo.ResultsStored पर साथ शामिल हो गए RowId कॉलम केवल।
समस्या: इसका परिणाम दोहराई गई पंक्तियों में डाला गया है। न केवल मुझे dbo.MatchDate (@date) से भी पंक्तियाँ मिल रही हैं, लेकिन इससे भी dbo.ResultsStored तालिका जो बिल्कुल नहीं था dbo.ResultsStored केवल ModifiedAt को वही पंक्ति आईडी के लिए मान की जांच करने के लिए था।
मैं क्वेरी से ऊपर कैसे संशोधित कर सकता हूं dbo.ResultsStored तालिका के कारण # Temp2 में पंक्तियों के इस दोहराव से बचें?
मुझे लगता है कि आप आप क्या चाहते हैं की जाँच करने के लिए मौजूद है का उपयोग कर सकते हैं:
# Temp2 में डालने (RowNumber, ValFromFunc, FuncWeight, प्रतिशत) RowNumber, d.PercentMatch, @constVal, d.PercentMatch * @constVal चयन dbo.MatchDate (@date) के रूप में घ जहां (dbo.Patients से चयन मौजूद है 1 के रूप में पी अंदरूनी rs.RowId रुपये के रूप में dbo.ResultsStored शामिल हों = घ .RowNumber WHERE (d.RowNumber = p.RowId) और (p.ModifiedAt & gt; rsModifiedAt)) यह # Temp2 में दर्ज होगा केवल रिकॉर्ड TVF से, बशर्ते कि कम से कम एक रिकॉर्ड उसी रोआईड से, dbo.Patients से < कोड> ModifiedAt सह> संशोधितअट से अधिक dbo.ResultsStored ।
No comments:
Post a Comment