PDA

View Full Version : مرتب كردن شماره بر اساس تاريخ



mojtaba0912433
دوشنبه 22 اسفند 1390, 22:04 عصر
سلام
مي خوام شماره اسناد را بر اساس تاريخ مرتب كنم با اين كد اس كيو ال نمي شه لطفا اگه زحمتي نيست راهنمايي كنيد ثواب داره به خدا
update tablename set fieldshomare='shomaresanad' where rooz='rooz' and mah='mah'

Valadi
سه شنبه 23 اسفند 1390, 07:03 صبح
این دستور آپدیته
شما از این دستور order by استفاده کنید

shobair
سه شنبه 23 اسفند 1390, 10:04 صبح
سلام
مي خوام شماره اسناد را بر اساس تاريخ مرتب كنم با اين كد اس كيو ال نمي شه لطفا اگه زحمتي نيست راهنمايي كنيد ثواب داره به خدا
update tablename set fieldshomare='shomaresanad' where rooz='rooz' and mah='mah'

سلام
اگر تاریخ رو مثلاً در فیلد Date نگه داری می کنید

Select * from Table1 order by Date ASC

شبیر

mojtaba0912433
سه شنبه 23 اسفند 1390, 17:56 عصر
با دستور order چيزي ثبت نميشه ميخوام شماره ها تغييير كنه .order ظاهري مرتب مي كنه ولي در ديتابيس چيزي تغير نمي كنه

shobair
چهارشنبه 24 اسفند 1390, 10:24 صبح
با دستور order چيزي ثبت نميشه ميخوام شماره ها تغييير كنه .order ظاهري مرتب مي كنه ولي در ديتابيس چيزي تغير نمي كنه

سلام

میتونید براش برنامه بنویسید مثلاً


Table1.Sort:='Date ASC';
Table1.First;
For i:=1 to Table1.RecordCount do
begin
Table1.Edit;
Table1.FieldByName('shomareh').Value:=i;
Table1.Post;
Table1.Next;
end;


شبیر

mojtaba0912433
چهارشنبه 24 اسفند 1390, 17:09 عصر
راه حلش پيدا شد اگه كسي خواست پيغام بده

fahimi
چهارشنبه 24 اسفند 1390, 19:34 عصر
بهتر بود را حل می نوشتی و کار به پیغام نمی کشید

mojtaba0912433
پنج شنبه 25 اسفند 1390, 18:25 عصر
اول كل شماره سند ها را بدست اوردم با يه كوئري بعد تاريخها با يه كوئري ديگه البته هر دو با ORDER مرتب ميشن بعد با دستور UPDATE شماره ها را بر اساس تاريخ مرتب كردم همين

delphidark
جمعه 26 اسفند 1390, 02:09 صبح
دوست عزیز در دیتابیس مکان فیزیکی رکوردها مد نظر نیست (مدیریتش بر عهده DBMS هست)

به عبارت دیگه ذخیره کردن رکوردها به صورت Sort شده در سطح کاربری دیتابیس مفهومی نداره ....

شما هر موقع که به رکوردهایی نیاز داشتین باید اونها رو به صورت Sort شده واکشی کنید ...

mojtaba0912433
جمعه 26 اسفند 1390, 10:02 صبح
دوست عزیز در دیتابیس مکان فیزیکی رکوردها مد نظر نیست (مدیریتش بر عهده DBMS هست)

به عبارت دیگه ذخیره کردن رکوردها به صورت Sort شده در سطح کاربری دیتابیس مفهومی نداره ....

شما هر موقع که به رکوردهایی نیاز داشتین باید اونها رو به صورت Sort شده واکشی کنید ...
در يك برنامه حسابداري لازم هست شماره اسناد بر اساس تاريخ مرتب باشن و شماره اختصاصي سند بر اساس تاريخ به اون اختصاص داده بشه .در بعضي از نرم افزارها ميشه به تارخ قبل سند زد.شما بايد گزينه اي در برنامه داشته باشين تا اسناد را بر اساس تاريخ مرتب و به اونها شماره بدين .1-شماره سري 2-شماره سند

delphidark
جمعه 26 اسفند 1390, 11:08 صبح
بله دوست عزیز اگر منظور شما از شماره چیزی غیر از Identifier باشه (مثلا کدینگ حساب ، شماره سند یا ...) حق با شماست و در اینجا بحث مرتب کردن یک فیلد بر حسب یک فیلد دیگر هست که معنی هم داره...
هر چند که در این حالت هم باز 2 سناریو وجود داره ، اول این که پس از درج هر رکورد جدید Triger مربوط به Sort کردن اجرا بشه و سناریوی دوم هم اینکه کدها و شماره هایی که صرفا جنبه نمایشی دارند (و نه کاربردی در طراحی لایه دیتابیس) در هنگام گزارش گیری ساخته بشن

با توجه به اینکه در یک سیستم مالی و حسابداری غالب تراکنش ها مربوط به درج یا اصلاح سند هست به نظر میاد سناریوی دوم منطقی تر و سربارکمتری داشته باشه .

موفق باشید.

mojtaba0912433
جمعه 26 اسفند 1390, 13:45 عصر
بله دوست عزیز اگر منظور شما از شماره چیزی غیر از Identifier باشه (مثلا کدینگ حساب ، شماره سند یا ...) حق با شماست و در اینجا بحث مرتب کردن یک فیلد بر حسب یک فیلد دیگر هست که معنی هم داره...
هر چند که در این حالت هم باز 2 سناریو وجود داره ، اول این که پس از درج هر رکورد جدید Triger مربوط به Sort کردن اجرا بشه و سناریوی دوم هم اینکه کدها و شماره هایی که صرفا جنبه نمایشی دارند (و نه کاربردی در طراحی لایه دیتابیس) در هنگام گزارش گیری ساخته بشن

با توجه به اینکه در یک سیستم مالی و حسابداری غالب تراکنش ها مربوط به درج یا اصلاح سند هست به نظر میاد سناریوی دوم منطقی تر و سربارکمتری داشته باشه .

موفق باشید.
لزومي نداره پس از هر بار درج يا اصلاح اين كار انجام بشه هر وقت كاربر نياز داشت اين كار انجام ميشه ولي نبايذ اين كار نمايشي باشه بايد شماره اختصاص داده بشه