I have two tables one of USERS and second of UserFiles just like below
UserTable
| UserId | Name | Phone | |
| 1 | New | [email protected] | 0909000 |
| 2 | Old | [email protected] | 0998099 |
UserFiles
| FileID(Primary) | UserID(Foreignkey) | FileName | DateCreated | Active |
| 1 | 1 | MyResume.Doc | 2/2/2016 | true |
| 2 | 1 | Image.JPG | 2/17/2016 | true |
| 3 | 1 | Cover.Docx | 2/20/2016 | true |
| 4 | 2 | Card.png | 1/1/2017 | true |
Now I have a gridview I want to show one File for each user I mean the latest file for this user According to datecreated for example here I have three files for userid=1 but i just want to show the Cover.Docx because it is latest one for this user according to datecreated Field.
I want this record how to do that
| RecordID | UserId | FileName | Phone | |
| 1 | 1 | Cover.Docx | [email protected] | 0909000 |
| 2 | 2 | card.png | [email protected] | 0998099 |
I want that record how to achived that
theLizardPosted Jun 14, 2016, 1:39 AM
FROM user
INNER JOIN userfiles
ON user.[id] = userfiles.[id1]
Mark TaborPosted Jun 14, 2016, 1:03 AM
Mark TaborPosted Jun 14, 2016, 12:50 AM
ali tuncerPosted Jun 14, 2016, 12:22 AM
try this :
select ufs.FileId,uf.userid,ufs.Filename,u.Email,u.Phone
from dbo.UserTable u
inner join (
select UserId ,Max(DateCreated) as CreateDate
from dbo.Userfiles
group by UserId) uf on u.UserId = uf.UserId
inner join dbo.Userfiles ufs on uf.userid = ufs.UserID and uf.CreateDate = ufs.DateCreated
Mark TaborPosted Jun 13, 2016, 11:30 AM
Nitin SontakkePosted Jun 13, 2016, 8:35 AM
Vasanth NatarajanPosted Jun 13, 2016, 2:36 AM
Pankaj Kumar ChoudharyPosted Jun 13, 2016, 1:12 AM