تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: مشکل تو نوشتن دستور Select

  1. #1
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض مشکل تو نوشتن دستور Select

    سثلام دوستان من یک جدول دارم که حاوی سه فیلد بدهکار - بستانکار و تاریخ هست ، حالا میخوام ستون مانده رو هم به این جدول اضافه کنم میشه راهنماییم کنید که چطور میتونم این کار رو انجام بدم ؟؟؟

    مثلا :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  2. #2
    آخر فروم باز hamidreza_buddy's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    شریف
    پست ها
    1,167

    پيش فرض

    بهتره که به صورت فیلد نباشه. بلکه از این دو فیلد دیگه اون رو محاسبه کنی.

    فکر می کنم این کد جواب بده:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    select اول جمع ستون بستانکار و ستون دوم جمع ستون بدهکار رو بدست می آره و از هم تفریق می کنه.

  3. این کاربر از hamidreza_buddy بخاطر این مطلب مفید تشکر کرده است


  4. #3
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض

    بهتره که به صورت فیلد نباشه. بلکه از این دو فیلد دیگه اون رو محاسبه کنی.

    فکر می کنم این کد جواب بده:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    select اول جمع ستون بستانکار و ستون دوم جمع ستون بدهکار رو بدست می آره و از هم تفریق می کنه.
    ممنون حمید جان ولی منظور من این نبود .
    ببین میخوام مانده صندوق پس از همون رکورد نشون داده بشه مثلا :
    مانده صندوق 200 تومن بوده و 100 تومن دریافت شده مانده بشه 300
    تو رکورد بعدی اگه 200 تومن پرداخت بشه مانده رو نشون بده 100 تومن
    و به همین شکل تا آخرین رکورد که مانده واقعی صندوق رو نشون میده و باید با کوئری ای که شما نوشتید برابر باشه

  5. #4
    آخر فروم باز hamidreza_buddy's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    شریف
    پست ها
    1,167

    پيش فرض

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

    احتمالاً با برنامه نویسی SQL (tsql) می شود این کار رو کرد ولی من بلد نیستم. یعنی به صورت برنامه نویسی هر دفعه یه محاسبه ای انجام داد و اون وبر گردوند.

    ولی چیزی که به ذهنم می رسه اینه که خودتون به صورت برنامه نویسی این کار رو انجام بدهید. یعنی اول جدول شامل فیلد های بدهکار و بستانکار رو بگیرید و بعد توی یه حلقه الگوریتم رو روش اعمال کنید.

    البته اگه یه فیلد جداگانه در نظر بگیرید، می تونید در موقع insert کردن ابتدا دستور select بالا رو اجرا کنید تا مقدار فعلی رو به دست بیاورید. سپس مقدار بستانکار یا بدهکار رو از اون کم یا اضافه کنید و اون رو توی ستون مانده بنویسید.

  6. #5
    داره خودمونی میشه mbd1366's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    مشهد
    پست ها
    147

    پيش فرض

    حاجي ، حميد راست ميگه نبايد داخل ديتا بيس اطلاعات محاسباتي رو نگه داشت
    يعني نبايد اطلاعاتي كه ميشه از محاسبه دو فيلد ديگر بدست آور را در فيلد ديگر قرار دا
    چه كتابي شد !

  7. #6
    داره خودمونی میشه mbd1366's Avatar
    تاريخ عضويت
    Apr 2007
    محل سكونت
    مشهد
    پست ها
    147

    پيش فرض

    البته اگه اسرار داري ميشه هر زماني كه ديتابيست دار رفرش ميشه اين محاسبه رو انجام بده و بزاري داخل فياد مورد نظرت
    مثلا زمان اضافه كردن ركورد ، گزار شگيري ....

  8. #7
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض

    حاجي ، حميد راست ميگه نبايد داخل ديتا بيس اطلاعات محاسباتي رو نگه داشت
    يعني نبايد اطلاعاتي كه ميشه از محاسبه دو فيلد ديگر بدست آور را در فيلد ديگر قرار دا
    چه كتابي شد !
    نه جانم من قصد انجام این کار رو ندارم
    چون این کار علاوه بر افزونگی فوق العاده زیاد ممکنه باعث ناسازگاری هم بشه !!!!

  9. #8
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض

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

    احتمالاً با برنامه نویسی SQL (tsql) می شود این کار رو کرد ولی من بلد نیستم. یعنی به صورت برنامه نویسی هر دفعه یه محاسبه ای انجام داد و اون وبر گردوند.

    ولی چیزی که به ذهنم می رسه اینه که خودتون به صورت برنامه نویسی این کار رو انجام بدهید. یعنی اول جدول شامل فیلد های بدهکار و بستانکار رو بگیرید و بعد توی یه حلقه الگوریتم رو روش اعمال کنید.

    البته اگه یه فیلد جداگانه در نظر بگیرید، می تونید در موقع insert کردن ابتدا دستور select بالا رو اجرا کنید تا مقدار فعلی رو به دست بیاورید. سپس مقدار بستانکار یا بدهکار رو از اون کم یا اضافه کنید و اون رو توی ستون مانده بنویسید.
    حمید جان خیلی خیلی ممنون از راهنماییت ولی با برنامه نوسی نمیخوام این کار رو بکنم به دو دلیل :
    1- سرعتش چندان مطلوب نیست (انجام دادم سرعتش کم بود)
    2-میخوام این کارهای پردازشی رو بندازم گردن سرور
    3-میخوام مستقیما هم از سرور گزارش بگیرم (بدون برنامه با مشاهده ویو)

    سومی خیلی واسم مهمه چون مثلا میخوام فاکتور 2 ماه پیش آقای X رو چاپ کنم و در پایین فاکتور مانده حسابش رو هم نشون بدم بعد از صدور فاکتور که با وجود View نیاز به کد نویسی اضافه ندارم

    جواب سوالم رو جناب مهندس ثباتی در انجمن برنامه نویس دادن :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شیوه حلش واسم جالب بود 2 تا راه پیشنهاد داد
    اولی از یک جدول میانی استفاده میکنه که سریع تره ولی من ترجیح نمیدم
    و در دومی با استفاده از Rank`میاد و به هر ستون یک شماره (ID) اختصاص میده و ستون مانده رو میکنه مجموع بدهکار - بستانکار ستونهای با رنک کمتر از ستون فعلی . این دستور در ویو قابل پیاده سازیه
    یه نمونه جدول میندازم واسه دوستانی که سوال منو دارن
    Last edited by bad_boy_2007; 14-12-2008 at 19:48.

  10. #9
    پروفشنال bad_boy_2007's Avatar
    تاريخ عضويت
    Aug 2006
    محل سكونت
    ایران
    پست ها
    803

    پيش فرض

    اسکریپت دیتابیس :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    خروجی :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  11. #10
    داره خودمونی میشه
    تاريخ عضويت
    May 2007
    پست ها
    77

    6 محاسبه بدهکار بستانکار مانده حساب در SQL

    سثلام دوستان من یک جدول دارم که حاوی سه فیلد بدهکار - بستانکار و تاریخ هست ، حالا میخوام ستون مانده رو هم به این جدول اضافه کنم میشه راهنماییم کنید که چطور میتونم این کار رو انجام بدم ؟؟؟

    مثلا :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    سلام. در لینک زیر با یک روش ابتکاری این مورد رو توسط SQL Server حل کرده:

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    امید است به کار آید.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •