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

نام تاپیک: مشکل با distinct

  1. #1

    مشکل با distinct

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

    select distinct col1,col2,col3 from table
    ولی من می خواهم فقط روی col1 دستور distinct اعمال بشه.



  2. #2

    نقل قول: مشکل با distinct

    اگر کسی از دوستان می دونه لطفا راهنمایی کنه.

  3. #3

    نقل قول: مشکل با distinct

    فلسفه distinct چیز دیگری است و مربوط به مشکل شما نمی شود. distinct روی رکوردها اعمال می شود و رکورد تکراری را در خروجی نمایش نمی دهد.ضمن آنکه اگر ساختار بانک شما نرمال باشد حتما دلیلی برای تکرار فیلد col1 وجود دارد.
    شما باید به صورت علمی به مسئله نگاه کنید و هر گاه متوجه شدید که کدام مقدار col1 را به ازای باقی فیلدها نیاز دارید با دستوراتی مانند Group By , ویا توابع max , sum ... و اعمال آنها روی فیلد مورد نظر خروجی مورد نظر خود را تولید کنید.

  4. #4

    نقل قول: مشکل با distinct

    در جدول مقدار col1 تکراری است. و به ازای هر مقدار از col1 در col2 نیز مقداری وجود دارد.

    col1 col2
    a 4
    a 5
    a 8
    b 6

    حالا من می خواهم خروجی query شامل یک a و تمام مقادیر متناظرش در col2 باشد(4-5-8).

  5. #5

    نقل قول: مشکل با distinct

    شما می توانید بنویسید مثلا
    (select col1,max(col2
    from Tbl1
    Group by Col1
    و یا دستورات دیگر اما باز لازم است بگویم طراحی جداول خود را بازنگری کنید.چون درج رکورد تکراری بر خلاف قواعد نرمال سازی است. و اگر بانک نرمال باشد به چنین مشکلی بر نمی خورید.
    موفق باشید.

  6. #6

    نقل قول: مشکل با distinct

    خیلی ممنون از جوابتون.
    با این روش می توان این کار را کرد ولی در برنامه مقداری را که در max می نویسم را نمی گیرد. احتمالا باید در بخش مربوط به asp.net این مشکل را پیگیری کنم.

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

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