نمایش نتایج 1 تا 5 از 5

نام تاپیک: کمک در حل مشکل یک کوئری؟

  1. #1
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247

    کمک در حل مشکل یک کوئری؟

    با سلام :
    دوستان من با این کوئری
    SELECT DISTINCT NumID, Question, Ans1, Ans2, Ans3, Ans4, Correct, Level_q, Section, Checked, checkTest, Learning, Kind
    FROM
    (SELECT TOP (@cuont) NumID, Question, Ans1, Ans2, Ans3, Ans4, Correct, Level_q, Section, Checked, checkTest, Learning, Kind
    FROM Tb_Master
    WHERE (Kind = @Kind) AND (Learning = @Learning) AND (Section = @section)
    ORDER BY NEWID()) AS Tb_Master


    به تعداد n تا (@cuont) رکورد از جدولم به صورت تصادفی و حالت DISTINCT بیرون میکشم.
    خیلی هم خوب کار میکنه ولی مشکلی که داره اینه که اول n تا (@cuont) رکورد به صورت تصادفی از جدول انتخاب میکنه و بعد حالت DISTINCT رو اجرا میکنه و سوء تفاهم اینجا پیش میاد!
    که در حالت انتخاب n تا رکورد از جدولم به صورت تصادفی ممکن چند رکورد تکراری باشند و بعد حالت DISTINCT رو که اجرا میکنه ممکنه خروجی کمتر از (@cuont) باشه!!!!!!!!!!!!!!!!!!!!!!!1

    با تشکر

  2. #2
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    کار Distinct همینه ! تمام رکورد های تکراری را حذف می کند. اگر می خواهید دقیقا n رکورد داشته باشید و هیچکدام تکراری نباشد جای Distinct و Top را عوض کنید.
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  3. #3
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    نقل قول نوشته شده توسط whitehat مشاهده تاپیک
    کار Distinct همینه ! تمام رکورد های تکراری را حذف می کند. اگر می خواهید دقیقا n رکورد داشته باشید و هیچکدام تکراری نباشد جای Distinct و Top را عوض کنید.
    دوست عزیز من میدونم distinct چی کار میکنه.
    ولی وقتی جای distinct و top رو عوض میکنم error میگیره!!!
    من بعد از کلی بالا و پایین کردن این کوئری رو به دست اوردم .
    حالا متوجه این قضیه هم شدم که وقتی کوئری :
    SELECT DISTINCT NumID, Question, Ans1, Ans2, Ans3, Ans4, Correct, Level_q, Section, Checked, checkTest, Learning, Kind       
    FROM Tb_Master
    WHERE (Kind = @Kind) AND (Learning = @Learning) AND (Section = @section)

    رو اجرا میکنم 3 رکورد بر میگردونه!
    ولی وقتی کوئری :
    SELECT NumID, Question, Ans1, Ans2, Ans3, Ans4, Correct, Level_q, Section, Checked, checkTest, Learning, Kind       
    FROM Tb_Master
    WHERE (Kind = @Kind) AND (Learning = @Learning) AND (Section = @section)


    اجرا میکنم 9 رکورد بر میگردونه ! و این در حالی است که رکورد های بانک من هیچ کدوم تکراری
    نیست؟

  4. #4
    مدیر بخش آواتار whitehat
    تاریخ عضویت
    مهر 1382
    محل زندگی
    شیراز
    پست
    2,175
    ولی وقتی جای distinct و top رو عوض میکنم error میگیره!!!
    چه پیغامی دریافت می کنید، و چه Errorی می گیرید؟
    و این در حالی است که رکورد های بانک من هیچ کدوم تکراری
    مهم این نیست که رکورد های بانک شما تکراری باشند یا خیر. مهم اینه که ستون هایی که در کوئری شما نوشته می شود رکورد تکراری ندهند ( البته این را کلی گفتم ).
    To follow the path:
    Look to the master
    Follow the master
    Walk with the master
    See through the master
    Become the master

  5. #5
    VIP
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    www
    سن
    40
    پست
    1,247
    نقل قول نوشته شده توسط whitehat مشاهده تاپیک
    چه پیغامی دریافت می کنید، و چه Errorی می گیرید؟
    .
    الان دقیقا نمیتونم تست کنم ولی یادمه یه بار به کلمه order by گیر میداد .

تاپیک های مشابه

  1. این خطا یعنی چی؟
    نوشته شده توسط javad3151 در بخش SQL Server
    پاسخ: 2
    آخرین پست: سه شنبه 14 شهریور 1385, 10:56 صبح
  2. کلاس بندی و شی گرا کردن یعنی چی؟(توضیح مختصر)
    نوشته شده توسط active66 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 7
    آخرین پست: سه شنبه 02 خرداد 1385, 17:19 عصر
  3. مشخص کردن محل قرار کرفتن مکان نما یا tab از طریق کد نویسی؟
    نوشته شده توسط oghab در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: دوشنبه 16 آبان 1384, 19:05 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •