View Full Version : چجوری از این جدول select بگیرم
S_VB.max
سه شنبه 24 اسفند 1389, 11:35 صبح
code Tarikh status
-----------------------------------------------------------------
123 1389/02/12 1
123 1389/05/22 1
400 1389/07/01 1
400 1389/02/02 2
508 1389/12/02 1
سلام من می خوام لیست کدهایی که آخرین تاریخ را دارند و status آنها برابر یک است را بدست بیارم
لطفا راهنمایی کنید چجوری از این جدول select بگیرم
البته می خوام به همراه کدها ، تاریخ مربوطه هم لیست شود
Sajjad.Aghapour
سه شنبه 24 اسفند 1389, 12:30 عصر
بر اساس تاریخ مرتب کنید و مقایسه های status=1 و روزها رو انجام بدید
S_VB.max
چهارشنبه 25 اسفند 1389, 13:25 عصر
با دستور زیر فقط یک رکورد لیست میشه و همه کدها را چک نمی کنه:
select max(Tarikh) from table1 where status=1 order by Tarikh
این دستور هم تاریخ ها را بررسی نمی کنه:
select distinct code from table1 where status=1 order by Tarikh
من هنوز نتونستم راه حلی پیدا کنم
S_VB.max
چهارشنبه 25 اسفند 1389, 15:59 عصر
من این کدو به این صورت نوشتم ولی جواب نمیده:
select code,Tarikh,status from table1 group by code,Tarikh,status having status ='1' and tarikh =( select max(tarikh) from table1 where code=code)
لطفا کمک کنید
behrouzlo
چهارشنبه 25 اسفند 1389, 16:02 عصر
با دستور زیر تست کنید:
Select Code
From table1
Where Tarikh = (select max(Tarikh) from table1 where status=1)
S_VB.max
چهارشنبه 25 اسفند 1389, 16:10 عصر
سلام ممنون از اینکه توجه می کنید
با دستور شما فقط یک رکورد بدست می آید و تمام کدها لیست نمی شه
behrouzlo
چهارشنبه 25 اسفند 1389, 16:14 عصر
فکر کنم دستور بالا دستور باشه و تنها همان یک رکوردی برگشتی در شرط صدق می کند اگر N رکورد دارای بزرگترین تاریخ باشند N رکورد را برگشت خواهد داد
S_VB.max
چهارشنبه 25 اسفند 1389, 16:22 عصر
درسته با این دستور اگر N رکورد دارای بزرگترین تاریخ باشند N رکورد برگشت میده
میرم بررسی می کنم برمی گردم
S_VB.max
پنج شنبه 26 اسفند 1389, 14:57 عصر
فکر کنم دستور بالا دستور باشه و تنها همان یک رکوردی برگشتی در شرط صدق می کند اگر N رکورد دارای بزرگترین تاریخ باشند N رکورد را برگشت خواهد داد
مشکل من اینجاست که برای هر کد بزرگترین تاریخ متفاوتی وجود دارد
من می خوام تمام کدهایی را لیست کنه به شرطی که بزرگترین تاریخ و فیلد status برابر یک باشه
چیزی که من می خوام برگشت داده بشه باید چیزی مثل این باشه :
code Tarikh status
-----------------------------------------------------------------
123 1389/05/22 1
400 1389/07/01 1
508 1389/12/02 1
behrouzlo
پنج شنبه 26 اسفند 1389, 15:48 عصر
کد را به صورت زیر تغییر دهید و تست کنید :
Select T1.Code ,
T1.Tarikh
From table1 As T1
Where T1.Tarikh = ( select max(T2.Tarikh)
from table1 As T2
where T2.status = 1
And T1.Code = T2.Code
)
And T1.status = 1
Reza_Yarahmadi
پنج شنبه 26 اسفند 1389, 16:50 عصر
اگر قصد دارید همین اطلاعاتی که گفتید رو استخراج کنید (یعنی فقط کد و تاریخ) و به بقیه اطلاعات کاری ندارید میتونید بصورت زیر هم عمل کنید
Select
Code,
MAX(Tarikh) as Tarikh
From TableName
Where Status = 1
Group By
Code
S_VB.max
شنبه 28 اسفند 1389, 12:20 عصر
آقا بهروز و آقا رضا دستتون درد نکنه با کد هر دو شما همون چیزی که می خواستم برگشت میده
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.