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

نام تاپیک: تلفیق دو جدول و نمایش اطلاعات جدول دوم در سطر های جدول اول

  1. #1
    کاربر جدید
    تاریخ عضویت
    اردیبهشت 1394
    محل زندگی
    تهران
    پست
    6

    Unhappy تلفیق دو جدول و نمایش اطلاعات جدول دوم در سطر های جدول اول

    id name family
    1 ali omidvar
    2 reza hasani



    id paymentname price
    1 vam1 1000
    1 vam2 2000
    1 vam3 3000
    2 vam6 5000

    دو جدول فوق را داریم می خواهیم پس از join به این نتیجه برسم

    id name family p1 p_price1 p2 p_price2 p3 p_price3 p4 p_price4
    1 ali omidvar vam1 1000 vam2 2000 vam3 3000 null null
    2 reza hasani null null null null null null vam6 5000

    خواهشمند است راهنمایی کنید چه دستوری بنویسم-تشکر

  2. #2
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: تلفیق دو جدول و نمایش اطلاعات جدول دوم در سطر های جدول اول

    سلام.
    اول اینکه برای هر payment نیاز به دو ستون نیست، بلکه باید مثلا یک ستون داشته باشید به نام 'vam1' و مقدار آن مثلا 1000 یا همان price باشد و برای این کار هم باید از pivot query استفاده کنید.
    این کد رو تست کنید و به این صورت عمل کنید:

    --بسم الله الرحمن الرحیم
    --اللهم صل علی محمد و آل محمد

    Create table person (ID int Identity,Name VarChar(10),Family VarChar(20));
    insert into person values
    ('ali','omidvar'),
    ('reza','hasani');



    Create table Payments (PersonID int not null,PaymentName VarChar(10),Price int);

    insert into payments values
    (1,'vam1',1000),
    (1,'vam2',2000)
    ,(1,'vam3',5000)
    ,(2,'vam6',5000);

    --برای حالت داینامیک خطوط کامنت شده را آنکامنت کنید.
    --declare @vamTypes VarChar(max);
    --select @vamTypes+=',' + PaymentName from Payments;
    --set @VamTypes=stuff(@vamtypes,1,1,'');
    --declare @sql VarChar(max);
    --set @sql='
    select * from

    (select p.ID,p.Name,P.family,PY.PaymentName as n,PY.Price as pp
    from person P
    join Payments PY
    on P.ID =PY.PersonID
    ) source
    Pivot
    (max(PP) for N in (
    --' + @vamTypes + '
    vam1,vam2,vam3,vam6--برای حالت داینامیک این خط را کامنت کنید.
    )) pivotTable;
    --';
    -- execute (@sql);



    خروجی شبیه به این خواهد بود:

    ID/Name/Family/Vam1/Vam2/Vam3/vam6
    1/ali/omidi/1000/2000/5000/null
    ...

    برای اینکه ستون ها به صورت داینامیک تغییر کنند و مثلا اگر vam5 هم داشتیم خود به خود به نتیجه اضافه بشه کافیه تا خطوط کامنت شده رو آنکامنت کنید و یک خط از کد رو که مشخص کردم نیز کامنت کنید تا نتیجه به صورت پویا نمایش داده بشه.
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

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

  1. سوال: علت نمایش خطا هنگام تغییر در ستون های جدول
    نوشته شده توسط asghar2008 در بخش C#‎‎
    پاسخ: 8
    آخرین پست: دوشنبه 09 بهمن 1391, 23:35 عصر
  2. پاسخ: 2
    آخرین پست: پنج شنبه 29 تیر 1391, 20:06 عصر
  3. پاسخ: 1
    آخرین پست: پنج شنبه 29 تیر 1391, 13:00 عصر
  4. نمایش اطلاعات یک فیلد از تمام رکوردهای جدول در یک DBComboBox
    نوشته شده توسط am_sanatiz در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 6
    آخرین پست: شنبه 27 بهمن 1386, 15:46 عصر
  5. شمارش تعداد سطر های جدول درون یک جدول از دیتابیس + رسم نمودار
    نوشته شده توسط Messenger در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: پنج شنبه 06 دی 1386, 06:17 صبح

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

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