با سلام
چطور می توان کویری نوشت که در آن بتوان کلیه آخرین رکوردهای ثبت شده برای فیلد کلید خارجی را استخراج کرد
من کویری به شکل زیر نوشتم
این کویری تمام اطلاعات مرتبط به یک سال تمام افراد موجود سیستم را استخراج می کند چطور می شود آخرین رکورد ثبت شده برای همه افراد را از این گزارش خارج کرد؟
بهتر این هست که برای سوال پرسیدن جزییات رو کامل بفرمایید تا افرادی که قصد دارن وقت بذارن و پاسخ بدن بتونن پاسخ بهتری بدن. در هر صورت این سوال رو برای شما و سایر افرادی که می خوان موضوع استخراج آخرین رکورد برای گروهی از رکوردها در Sql Server رو انجام بدن پاسخ میدم.
خب فرض کنید جدولی دارید با نام Users که لیست کاربران شما درون اون ذخیره میشه. این جدول دارای فیلدهای زیر می باشد :
خب در این جدول 3 فیلد داریم که شامل آیدی کاربر، نام و نام خانوادگی کاربر می باشد.
حالا فرض کنید جدول دیگری داریم که لیست پرسش های کاربران درون اون ذخیره شده. یعنی هر کاربر می تونه چندین سوال رو بپرسه. و ما میخوایم ببینم که هر کاربر آخرین سوالی رو که پرسیده چی بوده. بنابراین یک جدول هم به نام QuestionTbl داریم که شامل فیلدهای زیر می باشد.
نکته : فیلد UserID کلید خارجی در جدول QuestionID می باشد.
خب جدول بالا شامل ستونهای جدول QuestionTbl یا همون جدول سوالات می باشد.
حالا درخواست ما چی هست ؟
ما میخواهیم لیست آخرین سوال هر کاربر رو داشته باشیم.
کوئری بدست آوردن لیست آخرین سوال هر کاربر (در واقع میشه گفت آخرین رکورد هر گروه)
select
questionID,questionTitle,q.UserID
from
QuestionTbl q
inner join
(select UserID, max(questionID) as maxid from QuestionTbl group by UserID) as b on
q.questionID = b.maxid
دقت کنید که در کوئری بالا بعد از inner join یک کوئری دیگه نوشتیم که درون اون بر روی فیلد UserID گروه بندی رو انجام دادیم و گفتیم بالاترین Id رو برای هر گروه بدست بیار که در واقع همون آخرین سوال هر کاربر میشه. البته کوئری های دیگه ای هم میشه برای این منظور نوشت که در این لینک میتونید مطالعه بفرمایید.
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1400/08/02
- ساعت :
02:35:00 PM
- بازدید :
2563
- پاسخ :
1
|
تاریخ :
1403/01/15
- ساعت :
04:12:00 PM
- بازدید :
800
- پاسخ :
2
|
تاریخ :
1402/10/18
- ساعت :
10:45:00 PM
- بازدید :
706
- پاسخ :
2
|
تاریخ :
1402/08/18
- ساعت :
08:43:00 AM
- بازدید :
1318
- پاسخ :
0
|
تاریخ :
1402/08/16
- ساعت :
09:45:00 PM
- بازدید :
1039
- پاسخ :
1
|
تاریخ :
1402/06/27
- ساعت :
12:27:00 PM
- بازدید :
1461
- پاسخ :
2
|
تاریخ :
1402/06/25
- ساعت :
11:37:00 AM
- بازدید :
1042
- پاسخ :
1
|
تاریخ :
1402/06/18
- ساعت :
10:36:00 AM
- بازدید :
1753
- پاسخ :
2
|
تاریخ :
1401/11/15
- ساعت :
10:44:00 AM
- بازدید :
2361
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2008
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
75
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
428
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|