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

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




نمايش نتايج 1 به 4 از 4

نام تاپيک: چگونه Group By مورد نظر را بگیرم؟؟؟

  1. #1
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2005
    پست ها
    350

    پيش فرض چگونه Group By مورد نظر را بگیرم؟؟؟

    برنامه اي را در نظر بگيريد که داراي پروژه هاي مختلفي است که روند تکامل هر پروژه از شروع تا پايان بايد ذخيره شود

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


    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    همان طور که می بینید براي اين پروژه دو جدول طراحي کرده ام يکي به نام پروژه (که دارای یک فیلد کلید به نام آی دی می باشد) يکي به نام پيگيري. (فیلد وضعیت رشته است)

    کوئری که میخواهم بگیرم به صورت زیر است

    "وضعیت آخرین تاریخ پیگیری هر کد"

    SELECT ProjeID, MAX(T_Peigiri) AS AkharinTarikh
    FROM dbo.Pursue
    GROUP BY ProjeID

    تا اینجا مشکلی وجود نداره و رکوردها را گروپ بندی شده نمایش می دهد
    اما هدف کوئری نمایش وضعیت رکوردهاست که با اضافه کردن آن اجرا نمی شود. علی الظاهر در گروپ بای نمی توان خود فیلد را نمایش داد و حتما باید از توابعی مثل MAX ,Min ,Count,... استفاده شود

    SELECT ProjeID, MAX(T_Peigiri) AS Expr1, Vazeivat
    FROM dbo.Pursue
    GROUP BY ProjeID

    البته اگر در گروپ بای فیلد وضعیت رو بنویسم مشکل حل میشه اما در اصل گروپ بای رو غیر فعال کردم و همه رکورد ها رو نمایش میده.

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    مشکل شما به سادگی قابل حل است ...
    ولی کلید جدول دوم چیست؟؟؟ جدول بی کلید عین ملک بی صاحب است؟؟؟ با قوانین نرمال سازی هم مغایرت دارد!

  3. #3
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Oct 2005
    پست ها
    350

    پيش فرض

    علی الظاهر عکسها مشکل دارن لذا من یه با فیلدهای مهمو میگم:

    پروژه: کد (کلید) ـ نام ـ تاریخ شروع و...

    پیگیر: کد پروژه ـ تاریخ پیگیری ـ وضعیت
    کد و کد پروژه به هم وصل اند


    پس می فرمائید حتما باید یه کلید برای جدول پیگیری بگذارم...

    حال چگونه وضعیت را نمایش دهم؟؟؟
    Last edited by ahmad_r; 26-02-2010 at 09:09.

  4. #4
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    هر جدول شما حتماً باید PrimaryKey داشته باشد.

    در سوال اولیه شما اگر جمع ProjeID و T_Peigiri یکتا باشد (حتی اگر T_Peigiri تاریخ نباشد میشود این دو فیلد با هم PrimaryKey باشند) کد زیر مشکلتان را حل میکند:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر جدول دوم PrimaryKey-AutoNumber داشته باشد به جای T_Peigiri میتوانید از این فیلد برای تشخیص آخرین مورد ثبت شده استفاده کنید.

    این موارد مشروط به فیلد کلید و یا یکتا بودن اجتماع فیلدهای groupby و توابع جمعی میباشد.

Thread Information

Users Browsing this Thread

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

User Tag List

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

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