# پایگاه‌های داده > SQL Server > T-SQL >  پیدا کردن آخرین تاریخ ثبت به ازای هر کد

## sldvhlds

سلام دوستان
دو تا جدول دارم طبق عکس ضمیمه می خوام با استفاده ازهمه کد کالاهای جدول کالاها یک کوئری بزنم توی جدول سفارشات به این صورت که کد کالای اول رو از جدول کالاها بخونه توی جدول سفارشات سرچ کنه ببینه از یک تاریخ خاص مثلا 1397/05/01 الی 1397/05/31 آخرین تاریخی (بزرگترین تاریخی ) که این کد کالا سفارش داده شده کی بوده وتاریخ سفارش و نام سفارش دهنده رو توی اولین سطرگرید ویو نشون بده و به همین ترتیب سطرهای گرید ویو رو پرکنه میخوام به ازای هر کد کالا آخرین دفعه ای که کالا سفارش داده شده رو ببینم 

92988.jpg

----------


## Mahmoud.Afrad

;WITH cte AS
(
   SELECT *,
         ROW_NUMBER() OVER (PARTITION BY [Code] ORDER BY [DateColumnName] DESC) AS rn
   FROM [TableName]
)
SELECT *
FROM cte
WHERE rn = 1
[Code] نام ستونی که براساس اون میخواهید دسته بندی کنید.
[DateColumnName] ستون تاریخ. اگر بزرگترین تارریخ را میخواهید به صورت نزولی DESC و برای کوچکترین تاریخ به صورت صعودی مرتب کنید.
[TableName] نام جدول

----------


## Vahid.nj

اول از همه برای این کار باید از رابطه بین جداول sql استفاده کنی و برای جستجو بر اساس تاریخ هم فکر می کنم لازمه که از تبدیل تاریخ شمسی به میلادی و بلعکس استفاده بشه که با یه سرچ پیدا میشه، اگر هم راهنمایی بیشتری خواستی مدل جداول رو بزار

----------


## sldvhlds

> اول از همه برای این کار باید از رابطه بین جداول sql استفاده کنی و برای جستجو بر اساس تاریخ هم فکر می کنم لازمه که از تبدیل تاریخ شمسی به میلادی و بلعکس استفاده بشه که با یه سرچ پیدا میشه، اگر هم راهنمایی بیشتری خواستی مدل جداول رو بزار


ممنون از پاسخ ولی فکر کنم اصلا ربطی به رابطه نداره بیشتر باید از حلقه  استفاده بشه مشکل اینجاست که وقتی از حلقه استفاده می کنی توی گرید هیچی  نشون نمیده

----------


## sldvhlds

با تشکر از دوستان سوال رو یه جور دیگه مطرح میکنم و یه سری توضیح بیشتر میدم 
برنامه به زبان C#‎
 ADO.Netدسترسی داده با  
SQL بانک اطلاعاتی
هدف  نوشتن یک کد هست که از جدول سفارشات در یک بازه زمانی که کاربر تعیین  میکنه (مثلا 1397/05/01 الی 1397/05/31)  بابت هر کد کالائی آخرین تاریخی  که اون کالا سفارش داده شده رو توی یه گرید نشون بده مثلا توی جدول بالا  باید گریدمثل زیر پربشه ممنون


ضمیمه 148798

----------


## Mahmoud.Afrad

کوئری که بنده گذاشتم رو تست کردید؟

----------


## unique2017

چه خوووب و ممنون

----------


## sldvhlds

> ;WITH cte AS
> (
>    SELECT *,
>          ROW_NUMBER() OVER (PARTITION BY [Code] ORDER BY [DateColumnName] DESC) AS rn
>    FROM [TableName]
> )
> SELECT *
> FROM cte
> WHERE rn = 1
> ...


ممنون درست شد کار میکنه

----------

