ورود

View Full Version : سورت نمودن رکوردها بر اساس 2 شرط



nightHunter
چهارشنبه 26 تیر 1387, 09:05 صبح
سلام و خسته نباشید .

من جدولی دارم در یک برنامه حسابداری که مربوط به چاپ اسناد مالی میشه .

برای چاپ یک سند حسابداری نیاز هست اولین رکوردی که در سند چاپ میشه حتما ماهیت بدهکار داشته باشه و همچنین رکوردهایی که چاپ میشوند باید حتما بر اساس شماره حساب کل هم سورت شوند .
یعنی ابتدا همه رکوردها رو بر اساس شماره حساب کل سورت کنیم و در شرط بعد حتما ابتدا حسابی که بدهکار است را چاپ کنیم . من برای چاپ اسناد از FastReport استفاده میکنم و برای دسته بندی کردن حسابهای کل پشت سر هم از Group Band موجود در FastReport استفاده میکنم . حالا سوال من اینه که چطوری میتونم هر دو شرط رو در Query خودم ذکر کنم .

مثلا : select * from Sanad where sanadNo='135' order by kol , bestankar

با فرمان فوق الذکر فقط یکی از order ها رعایت میشه . لطفا راهنمایی بفرمایید .

متشکرم .

etedali
چهارشنبه 26 تیر 1387, 09:37 صبح
بین دو شرط از And استفاده کنید فکر میکنم جواب بگیرید.

nightHunter
چهارشنبه 26 تیر 1387, 09:41 صبح
بین دو شرط از And استفاده کنید فکر میکنم جواب بگیرید.

سلام ،
خیر دوست عزیز order با and جواب نمیده .
متشکرم از پاسخ شما .

Mahyaa
چهارشنبه 26 تیر 1387, 10:16 صبح
سلام و خسته نباشید .

من جدولی دارم در یک برنامه حسابداری که مربوط به چاپ اسناد مالی میشه .

برای چاپ یک سند حسابداری نیاز هست اولین رکوردی که در سند چاپ میشه حتما ماهیت بدهکار داشته باشه و همچنین رکوردهایی که چاپ میشوند باید حتما بر اساس شماره حساب کل هم سورت شوند .
یعنی ابتدا همه رکوردها رو بر اساس شماره حساب کل سورت کنیم و در شرط بعد حتما ابتدا حسابی که بدهکار است را چاپ کنیم . من برای چاپ اسناد از FastReport استفاده میکنم و برای دسته بندی کردن حسابهای کل پشت سر هم از Group Band موجود در FastReport استفاده میکنم . حالا سوال من اینه که چطوری میتونم هر دو شرط رو در Query خودم ذکر کنم .

مثلا : select * from Sanad where sanadNo='135' order by kol , bestankar

با فرمان فوق الذکر فقط یکی از order ها رعایت میشه . لطفا راهنمایی بفرمایید .

متشکرم .


راهش همینه که گفتید . من خودم همیشه این کار رو میکنم . شاید مشکل از جای دیگه باشه .

nightHunter
چهارشنبه 26 تیر 1387, 10:44 صبح
راهش همینه که گفتید . من خودم همیشه این کار رو میکنم . شاید مشکل از جای دیگه باشه .

سلام دوست عزیز ، متشکرم از پاسخ شما بنده هم همیشه از همین روش استفاده میکنم ولی متاسفانه در این حالت یک از order ها به دیگری ارجعیت داره ولی من نیاز دارم که هر دو به یک اندازه ارجعیت داشته باشند . راهی برای این موضوع وجود داره ؟

متشکرم .

lord_viper
چهارشنبه 26 تیر 1387, 10:46 صبح
اگه درست متوجه شده باشم
شما شرط where رو بر اساس بدهکار قرار بدین و سورت اونرو بر اساس حساب کل
select * from Sanad where bedehkar='135' order by kol

nightHunter
چهارشنبه 26 تیر 1387, 10:50 صبح
اگه درست متوجه شده باشم
شما شرط where رو بر اساس بدهکار قرار بدین و سورت اونرو بر اساس حساب کل
select * from Sanad where bedehkar='135' order by kol


سلام ، دوست عزیز 135 شماره سند حسابداری هستش و نمیتوان از where به شکلی که شما فرمودی استفاده کرد چون در این حالت همه رکوردها رو نمایش نمیده و اگر هم بشه شرط where رو طوری تنظیم کرد که همه رکوردها رو نمایش بده باز هم در قسمت سورت کردن مشکل پا بر جا خواهد ماند .

از پاسخ شما هم متشکرم دوست عزیز .

dkhatibi
چهارشنبه 26 تیر 1387, 10:59 صبح
رگر قراره بدهکارها اول باشند و سپس بر اساس شماره کل مرتب شوند دستور زیر مناسبه که!

Select * from YourTable order by fieldbedhkar_Bestankar Field_no
البته اگر فیلد بدهکار مشخص نیست باید بر اساس داده ی مثبت و منفی مرتب کنید.