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

نام تاپیک: Quary در دو جدول

  1. #1

    Quary در دو جدول

    با سلام به همه دوستان!! من در حال پیاده سازی سیستمی مربوط به شرکت کاریابی هستم.
    درون بانکم دو جدول وجود داره، یکی جدول اطلاعات شخصی و دیگری مهارت ها.
    ارتباط بین این دو جدول از طریق کد ملی برقرار میشه. و خب طبیعیه هر فردی میتونه چند تا مهارت داشته باشه (به این معنا که درون جدول مهارت ها دارای چند رکورد باشه).
    خب حالا من می خوام یک Query بنویسم که اگر فردی دارای چند مهارت بود، دیگه چند تا سطر نشون داده نشه، بلکه مهارتها در قالب ستون های جدید آورده بشه.
    مثلا به شکل زیر:
    کدملی_____نام خانوادگی____مهارت 1 ________مهارت 2 ________مهارت 3 ______و الی آخر
    .
    از دوستان اگر کسی تجربه این کار رو داشته لطف کنه اطلاعاتش رو در اختیار من قرار بده ممنون میشم.
    سپاس فراوان پیشاپیش.

  2. #2

    نقل قول: Quary در دو جدول، لطفا کمک کنید

    ببینید من میخوام از این Query توی Desktop Application استفاده کنم.

  3. #3
    کاربر دائمی آواتار ricky22
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    شیراز
    پست
    1,591

    نقل قول: Quary در دو جدول، لطفا کمک کنید

    از چه زبانی استفاده می کنید؟
    می تونید دیتا تیبیل بسازید در دات نت و با select گرفتن از مهارت ها اونا رو به عنوان یک column به دیتاتیبل اضافه کنید

  4. #4

    نقل قول: Quary در دو جدول، لطفا کمک کنید

    نه دوست عزیز این که شما گفتید دوباره همون خروجی را میده. اگر بخوام مساله رو بهتر توضیح بدم، باید بگم که، اگر مثلا فقط یک سطر درون جدول مهارت با کد ملی 13 وجود داشت که هیچ، خب خروجی به شکل زیر خواهد بود:
    کدملی | مهارت
    13 |برنامه نویسی
    حالا اگه فردی با کدملی 13 دارای سه مهارت باشه، خروجی این شکلی میشه:
    کدملی | مهارت
    13 |برنامه نویسی
    13 |شبکه
    13|تعمیرات
    که این دومی مطلوب من نیست. من میخوام به شکل زیر در بیاد:
    کدملی | مهارت 1|مهارت 2|مهارت 3
    13 |برنامه نویسی |شبکه|تعمیرات

    راستش بعید می دونم که با Query بشه همچین چیزی رو انجام بدم.
    در ضمن من با C#‎.NET کار می کنم و SQL 2005
    سپاس

  5. #5

    نقل قول: Quary در دو جدول، لطفا کمک کنید

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

  6. #6

    نقل قول: Quary در دو جدول، لطفا کمک کنید


    SELECT Code_Melli, STUFF((SELECT ','+Maharat
    FROM table_name t2
    WHERE t1.Code_Melli = t2.Code_Melli
    FOR XML PATH('')),1,1,'') AS Skills_List
    FROM (SELECT DISTINCT Code_Melli FROM table_name) AS t1;
    وبلاگ من (Advanced SQL Querying)

  7. #7

    نقل قول: Quary در دو جدول

    نقل قول نوشته شده توسط goodlife مشاهده تاپیک
    سلام و ممنون بخاطر پاسخ
    فقط امکانش هست که این کد رو کمی توضیح بدید
    مثلا دستور For XML Path ؟؟؟
    از FOR XML PATH برای الحاق سطرهای جدول استفاده شده است.
    http://www.30sharp.com/ShowArticle.a...14&AuthorID=11
    وبلاگ من (Advanced SQL Querying)

  8. #8
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1385
    محل زندگی
    اصفهان
    پست
    70

    نقل قول: Quary در دو جدول

    با سلام

    من خودم موردی مشابه داشتم البته در سیستم حقوق دستمزد بود ، برای جابجا کردن سطر ها به صورت ستون از Pivote استفاده کردم ،فکر کنم در مورد مسئله شما هم شاید کمک کنه برای مثال هم میتونین لینک زیر رو ببینین :
    http://www.unboxedsolutions.com/sean...08/30/302.aspx
    موفق باشید

  9. #9

    نقل قول: Quary در دو جدول

    نقل قول نوشته شده توسط amir_alaki مشاهده تاپیک
    با سلام

    من خودم موردی مشابه داشتم البته در سیستم حقوق دستمزد بود ، برای جابجا کردن سطر ها به صورت ستون از Pivote استفاده کردم ،فکر کنم در مورد مسئله شما هم شاید کمک کنه برای مثال هم میتونین لینک زیر رو ببینین :
    http://www.unboxedsolutions.com/sean...08/30/302.aspx
    موفق باشید
    سلام دوست من،
    PIVOT در این مورد سفارش نمیشه. زیرا ممکنه کاربر بخواهد داده های N سطر (که متغیر هست) را الحاق کند. و همچنین نیاز به تابع ROW_NUMBER نیز وجود خواهد داشت و در نهایت با وجود روش های ساده تری چون FOR XML PATH و Recursive CTE که برای تمام سناریو ها جواب می دهند PIVOT اصلا سفارش نمی شود.

    می توانید به این مقاله رجوع کنید:
    http://www.simple-talk.com/sql/t-sql...-transact-sql/
    وبلاگ من (Advanced SQL Querying)

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

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