tsql - SELECT 0 for multiple rows of join -


मेरे पास एक चालान और भुगतान तालिका है।

प्रत्येक चालान रिकॉर्ड (जिसमें एक OriginalInvoiceValue फ़ील्ड होता है) के लिए, भुगतान तालिका में कई भुगतान हो सकते हैं। एक चयन में दो तालिकाओं में शामिल होता है, प्रत्येक चालान रिकॉर्ड एक संबद्ध भुगतान रिकॉर्ड की प्रत्येक घटना के लिए दोहराया जाता है।

मुझे क्या करना चाहिए, हालांकि, OriginalInvoiceValue फ़ील्ड को प्रति इनवॉइस केवल एक बार लौटा दिया गया है, और उसके बाद इसे 0 वापस कर दिया गया है (या NULL ) एक संबद्ध भुगतान रिकॉर्ड की प्रत्येक अतिरिक्त घटना के लिए (इस तरह से अगर मैं डेटा को एक्सचेंज और OriginalInvoiceValue कॉलम में जमा करने के लिए निर्यात करता था, तो मुझे वास्तव में भुगतान की प्रत्येक अतिरिक्त घटना के गुणा होने के बजाय सभी चालानों का वास्तविक कुल मिलता है।) < / P>

यदि एसक्यूएल सर्वर 2005 या नया है, आप एक चालान के अलग-अलग भुगतान के लिए पंक्ति संख्या असाइन कर सकते हैं, और केवल पहले भुगतान के लिए वास्तविक चालान रिकॉर्ड चुनने वाले चालानों में शामिल हो सकते हैं। आपके द्वारा क्रम को row_number () भाग में आवश्यक है; मैंने भुगतानआईडी का चयन किया है, लेकिन भुगतान की तारीख शायद अधिक उपयुक्त है।

 ; पी के साथ (भुगतान * के साथ INOOISEID ऑर्डर द्वारा भुगतान) * (पीरियड इनाम द्वारा विभाजन), पी के साथ * पी से एक्सप्लोरेशन इनवॉइस i p। InvoiceID = i.InvoiceID और p.rn = 1 ऑर्डर पी। इनवॉइसआईडी द्वारा , Rn   



Comments