PDA

View Full Version : کمک برای ایحاد یک select و با روشی بهتر



sadaf_
سه شنبه 01 آذر 1390, 09:10 صبح
سلام
چندی پیش من تاپیکی در خصوص select برای گزارش یکپارچه مالی ایجاد کرده بودم و یه سری پیشنهاداتی شد ولی خیلی کمک نکرد حالا من یک راهی پیدا کردم و از شما دوستان خواهشمندم کمکم کنید

من دو تا Table دارم
یکی تعریف کدینگ و دیگری ثبت اسناد حسابداری
در کدینگ به این صورت تعریف می شود که کاربر حساب کل معین و تفضیل رو دارد
و در حساب کل کد 01 رو تعریف می کند در معین دو کد تعریف می کند یکی 011 و دیگری 012 و در حساب تفضیل هم 2 کد تعریف می کند یکی 0001 و دیگری 0002
پس با این حساب ما 2 کدینگ داریم
یکی 01/011/0001
و دیگری 01/012/0002
و اما ثبت اسناد حسابداری در اینجا کاربر تنها می تواند آخرین حساب ها را انتخاب کند یعنی فقط 01/011/0001 و 01/012/0002 و کاربر برای اینها مثلا 5 عدد وارد کرده به این صورت
01/011/0001---1000 ریال
01/011/0001---2000 ریال
01/011/0001---3000 ریال
01/012/0002---4000 ریال
01/012/0002---5000 ریال
حالا در گزارشی باید به این صورت نمایش بدم
که هر سطحی جمع خودش رو داشته باشد یعنی

حساب کل 01--15000
حساب معین 01/011--6000
حساب معین01/012--9000
حساب تفضیل 01/011/0001--6000
حساب تفضیل 01/012/0002--9000

حالا برای اینکه این را به دست بیاریم یک روشی پیدا کردم که اول اسناد رو بر اساس کدها GroupBy می کنیم و اعداد رو sum کنیم در این select چون در سند آخرین حساب ها هست همه تفضیل ها رو درست نمایش می ده و جمع می کنه حالا در این select جوری عمل کنیم که در مرحله بعدی اعداد بعد از / دوم رو حذف کنیم یعنی این رشته به دست می آید 01/011 و 01/012 و اینها رو sum کنیم و سپس اعداد بعد از / رو حذف کنیم اینها به دست می آید 01 و سپس این رو sum کنیم
این روش رو چطوری می شه پیاده کرد؟
با سپاس

baktash.n81@gmail.com
سه شنبه 01 آذر 1390, 14:08 عصر
بین Select ها دستور Union All بزار

sadaf_
پنج شنبه 03 آذر 1390, 15:18 عصر
unionAll کاربردش چیه ؟ چیکار می کنه؟

baktash.n81@gmail.com
دوشنبه 07 آذر 1390, 17:18 عصر
union یعنی اجتماع ... مجموعه رکورد های دو یا چند Select رو پشت سر هم نشون می ده ...