मेरे पास यह प्रश्न है

select DISTINCT outcome.outcome_id as N'id', SName as N'dir', Summry as N'summry', notes as N'note',category as N'cat', outcome_date as N'date' from outcome
inner join Incomeuser on outcome.outcome_id=Incomeuser.outcome_id
inner join Senders on Incomeuser.Senders_id=Senders.Senders_id 

यह एक ही आईडी के साथ 3 रिकॉर्ड लौटाता है मैं चाहता हूं कि प्रत्येक अद्वितीय आईडी के लिए पहला रिकॉर्ड हो :) जैसे मेरे पास यह रिकॉर्ड है:

  • 106
  • 106
  • 106
  • 260
  • 270
  • 260

इसे 106 - 260 - 270 लौटाना चाहिए, कोई मदद?!

0
Lubbock 20 सितंबर 2018, 22:43

1 उत्तर

सबसे बढ़िया उत्तर

स्तंभ उपनामों के लिए स्ट्रिंग्स का उपयोग न करें। खासकर जब इसकी जरूरत न हो।

SQL तालिका या परिणाम सेट में "प्रथम" रिकॉर्ड जैसी कोई चीज़ नहीं होती है। मुझे लगता है कि आप जल्द से जल्द outcome_date चाहते हैं।

आप top (1) और row_number() का उपयोग कर सकते हैं:

select top (1) o.outcome_id as id, SName as dir, Summry as summry, notes as note, category as cat, outcome_date as date
from outcome o inner join
     Incomeuser iu
     on o.outcome_id = iu.outcome_id inner join
     Senders s
     on iu.Senders_id = s.Senders_id 
order by row_number() over (partition by o.outcome_id order by outcome_date) ;
0
Gordon Linoff 20 सितंबर 2018, 22:46