PDA

View Full Version : استفاده از یک فیلد از رکورد بعد برای محاسبه در رکورد جاری



Delphi KDE
چهارشنبه 26 مهر 1385, 08:54 صبح
سلام دوستان

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

AminSobati
چهارشنبه 26 مهر 1385, 13:27 عصر
دوست عزیزم بستگی به نوع محاسبه داره. عموما Cursor استفاده میشه ولی راههایی هم برای استفاده نکردن از Cursor هست. فکر میکنم جزئیات بیشتری اگر پست کنید بهتر باشه

AminSobati
چهارشنبه 26 مهر 1385, 18:06 عصر
در ضمن دیدن این لینکها خالی از لطف نیست:
http://barnamenevis.org/forum/showthread.php?t=21194
http://barnamenevis.org/forum/showthread.php?t=37909

Delphi KDE
پنج شنبه 27 مهر 1385, 17:20 عصر
با تشکر از توجه شما

من یک فیلد عددی دارم در برنامه که هر روز اول وقت باید مقدار اون از روی یک دستگاه شمارنده مقدار فیلد عددی را در بانک اطلاعاتی ثبت کنم در پایان ماه باید گزارشی تهیه بشه که در هر در سطر اون مقدار شمارنده اول وقت و کارکرد و شمارنده اخر وقت(مقدار اول وقت روز بعد) را نیاز دارم حال همان طور که قبلا مطرح شد مشکل دقیقا اینه که چطور از اطلاعات رکورد بعدی استفاده کنم
در زمان تهیه این Query گزارش

majid_afra222
جمعه 28 مهر 1385, 09:58 صبح
سلام
اگه فقط با یه فاصله و فقط یه مقدار می خوای اینکارو بکنی میتونی یه SELECT تو در تو برای محاسبه فیلد روز بعد بنویسی، یعنی فیلد اول وقت روز بعد رو هم بدست بیاری.
کار بسیار ساده ای خواهد بود.


SELECT no1, karkard
. (SELECT TOP 1 no1
FROM my_table mt2
WHERE mt2.day > mt1.day) AS no_farda
FROM my_table mt1

ناگفته نماند میتونستی از توابع تاریخ هم برای روز بعد بودن فیلد و استفاده نکردن از TOP استفاده منی.

Delphi KDE
شنبه 29 مهر 1385, 10:22 صبح
دوست عزیز ممنون از جوابتون ولی من هر دو فیلدم رو از یک جدول باید استخراج کنم این روشی که شما فرمودید برای دو جدول است من هر جه سعی کردم روش شما را طوری تغییر بدم که از یک جدول بخونه نشد که نشد

majid_afra222
شنبه 29 مهر 1385, 12:34 عصر
دوست عزیز ممنون از جوابتون ولی من هر دو فیلدم رو از یک جدول باید استخراج کنم این روشی که شما فرمودید برای دو جدول است من هر جه سعی کردم روش شما را طوری تغییر بدم که از یک جدول بخونه نشد که نشد
سلام
جدا جالبه. یه بار دیگه کد ارسالی رو ببینید.
یه query اصلی دارید و یه sub-query که هر دو از یه جدول به نام my_table اطلاعات رو استخراج می کنن، فقط sub-query داخلی یه رکورد بعد از رکورد فعلی رو بر میگردونه.