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

نام تاپیک: درخواست كمك براي يك كوئري

  1. #1
    کاربر دائمی آواتار arsalansalar
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    اتاق آبی
    پست
    974

    درخواست كمك براي يك كوئري

    يك بانك اطلاعاتي كه داراي 1000 ركورد مربوط به مراجعات افراد به يك كلينيك است وجود دارد.در اين بانك هر فرد بين 2 تا سه بار مراجعه كرده است.
    مي خواستم ببينم با چه كدي يك كوئري بنويسم كه نام هر فرد فقط يك بار در ديتا گريد نمايش داده شود.
    مثلا اگر محمدي 3 بار هم مراجعه كرده است فقط يك بار نمايش داده شود.

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

    نقل قول: درخواست كمك براي يك كوئري

    باید روی فیلد unicode عملیات Distinct رو انجام بدین.

  3. #3

    نقل قول: درخواست كمك براي يك كوئري

    میشه بیشتر توضیح بدید؟؟؟

  4. #4

    نقل قول: درخواست كمك براي يك كوئري

    در واقع برای خلاصه سازی اطلاعات دو راه وجود دارد:
    1. Grouping (گروه بندی)
    2. استفاده از کلیدواژه ی Distinct.

    بطول مثال می خواهیم لیست افراد را از جدول مراجعات بیمار بدست آوریم و از آنجایی که ممکن است یک بیمار چند بار ویزیت شده باشد از distinct بلافاصله بعد از Select استفاده می کنیم.
    بطور پیشفرض select تمام داده ها (سطرهای) تکراری را بر می گرداند یعنی از کلید واژه ی All استفاده می کند.


    Select Distinct Name
    From Visits


  5. #5

    نقل قول: درخواست كمك براي يك كوئري

    ممنون دوست عزیز
    جواب رو میدونم
    منظورم این بود که اگر این فیلد name با حروف الفبای فارسی پر شده باشه به مشکل برمیخوره و داده تکراری هم برمیگردونه!!!
    تکلیف چیه؟؟؟

  6. #6

    نقل قول: درخواست كمك براي يك كوئري

    اگر از نوع داده ی nvarchar یعنی unicode variable character استفاده کنید نباید مشکلی وجود داشته باشد.
    بطور مثال:

    declare @a table (c nvarchar(10))
    insert into @a values (N'محمد')
    insert into @a values (N'محمد')

    select * from @a
    /*
    c
    ----------
    محمد
    محمد

    (2 row(s) affected)
    */
    select distinct * from @a
    /*
    c
    ----------
    محمد

    (1 row(s) affected)
    */

  7. #7

    نقل قول: درخواست كمك براي يك كوئري

    دوست عزیز سلام

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

    اما در مورد رفع این مساله من استفاده از Group By رو پیشنهاد میدم اما چون نمیدونم ساختار جدول شما به چه شکل هست نمیدونم این دستور کمکت بکنه یا نه در صورت تمایل فیلدهای جدولت رو به همراه فیلد های مورد نظر در دیتا گرید بگو شاید بهتر بشه روی مساله فکر کرد


    موفق باشی

  8. #8

    نقل قول: درخواست كمك براي يك كوئري

    دوست عزیز از پاسخ تون ممنونم
    استارتر این تاپیک من نیستم مشکل من چیز دیگه ای هست که براش تاپیک زدم ولی متاسفانه کسی جواب نداد
    من سوالم رو اینجا دوباره مطرح میکنم امیدوارم کمکم کنید

    نمیدونم برای انتخاب رکوردهای غیرتکراری از یک جدولی که بر اساس فیلد تاریخ میلادی بصورت نزولی مرتب شده از چه کوئری باید استفاده کنم!!!

  9. #9

    نقل قول: درخواست كمك براي يك كوئري

    سلام دوست من، کلمه کلیدی Distinct بعد از Select باعث میشه که سطرهای تکراری حذف شه.
    اما دقت کن، سطر های تکراری، یعنی سطرهایی که همه فیلدهاشون با هم برابر باشه.
    و این موضوع هیچ ارتباطی با فارسی بودن یا نبودن اطلاعات شما نداره.

    شما بهتره، یک نمونه از Query که داری میزنی رو اینجا بنویسی، تا دوستان بهت بگن چه شکلی میتونی تکراری ها رو حذف کنی.

    موفق باشی

  10. #10

    نقل قول: درخواست كمك براي يك كوئري

    من توی جدولم تاریخ رو بصورت ( فروردین 1388) ذخیره کردم و میخواستم که رکوردهایی که دارای فیلد مشابه هستند تکرار نشوند مثلا اگه چند تا خبر با تاریخ شمسی فروردین 1388 داشته باشم فقط یکی از اونها برگردونده بشه ولی انگار sql با حرف (ی) مشکل داره و نمیتونه فیلد های تکراری رو حذف کنه!!!
    این مشکل منه!!!

  11. #11
    کاربر دائمی آواتار happy65_sh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    شهر بادگیرها
    پست
    372

    نقل قول: درخواست كمك براي يك كوئري

    ولی انگار sql با حرف (ی) مشکل داره
    فكرنكنم باتوجه به اينكه گفتيد:
    چند تا خبر با تاریخ شمسی فروردین 1388 داشته باشم
    اما دقت کن، سطر های تکراری، یعنی سطرهایی که همه فیلدهاشون با هم برابر باشه.
    يعني تمام فيلد هات يكسان نيستند پس Distinct به درد شما نميخوره.شما خودت بايد اين موضوع را در شرطتت چك كني.مثلا:
    select top 1 from Table where date=date

  12. #12

    نقل قول: درخواست كمك براي يك كوئري

    نقل قول نوشته شده توسط majid325 مشاهده تاپیک
    باید روی فیلد unicode عملیات Distinct رو انجام بدین.
    به نظر من سوال این دوستمون به چندتا چیز بستگی داره اولا که برنامه چه جدولهایی داره ثانیا چه اطلاعاتی قراره نمایش داده بشه.
    و اینکه می شه یه توضیح بدید که فیلد unicode چیه؟
    ممنون

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

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