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

نام تاپیک: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

  1. #1
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    دیار کریمان
    پست
    1,008

    Smile دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    سلام
    اساتید لطفا عکس ببنید
    چیزی شبیه به این نیاز دارم چیکار کنم2021-05-31_121920.jpg

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,164

    نقل قول: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    ساده ترین حالت :
    SELECT * FROM
    (SELECT name,code,mande FROM TableName) AS Source
    PIVOT (SUM(mande) FOR code IN ([1],[2],[3],[4],[5],[6])) AS Result

  3. #3
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,164

    نقل قول: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    اگر اسامی ستونها مهم هست و بجای null باید 0 نشون داده بشه (مثل اونچه در تصویر اومده) :
    SELECT name,
    ISNULL([1],0) AS [mande code 1],
    ...
    ...
    ISNULL([6],0) AS [mande code 6]
    FROM
    (SELECT name,code,mande FROM TableName) AS Source
    PIVOT (SUM(mande) FOR code IN ([1],[2],[3],[4],[5],[6])) AS Result

  4. #4
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    دیار کریمان
    پست
    1,008

    نقل قول: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    سلام
    متشکرم از پاسخگوییتون
    من چیزی شبیه به این نیاز دارم
    بجای دستور if چیو بنویسم
    select distinct p.p8,p.p5,p.p6, v.codp,


    if (a.ssar=6)
    sum(a.bed)-sum(a.bes) as mande6
    if (a.ssar=1)
    sum(a.bed)-sum(a.bes) as mande1
    if (a.ssar=4)
    sum(a.bed)-sum(a.bes) as mande4
    if (a.ssar=5)
    sum(a.bed)-sum(a.bes) as mande5
    if (a.ssar=7)
    sum(a.bed)-sum(a.bes) as mande7
    if (a.ssar=8)
    sum(a.bed)-sum(a.bes) as mande8


    from personeli p
    inner join vamc v on p.p1=v.CODP
    inner join ACCOUNT a on v.NSAR=a.NSAR
    where a.dat <='1400/01/31'
    group by p.p5,p.p6,p.p8,v.codp,v.vam,v.mozd,a.bed,a.bes

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,164

    نقل قول: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    سلام و روز خوش
    select distinct p.p8,p.p5,p.p6, v.codp,
    mande6=
    CASE
    WHEN a.ssar=6 THEN sum(a.bed)-sum(a.bes)
    ELSE 0
    END,
    mande1=
    CASE
    WHEN a.ssar=1 THEN sum(a.bed)-sum(a.bes)
    ELSE 0
    END,
    ...
    ...
    ...
    mande8=
    CASE
    WHEN a.ssar=8 THEN sum(a.bed)-sum(a.bes)
    ELSE 0
    END
    from personeli p
    inner join vamc v on p.p1=v.CODP
    inner join ACCOUNT a on v.NSAR=a.NSAR
    where a.dat <='1400/01/31'
    group by p.p5,p.p6,p.p8,v.codp,v.vam,v.mozd,a.bed,a.bes

  6. #6
    کاربر دائمی
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    دیار کریمان
    پست
    1,008

    نقل قول: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    سلام متشکر
    به اولین مساوی که
    mande6=
    می رسد این خطا اتفاق می افتد
    FROM keyword not found where expected

  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    پست
    2,164

    نقل قول: دستور سلکت جهت ایجاد ستون به تعداد محتویات متفاوت یک سلول

    سلام و روز خوش
    من فقط اون بخش IFها رو براتون نوشتم و به مابقی کوئری کاری نداشتم.

    اگر از ms sql استفاده میکنین فکر کنم همین که نوشتم درست باشه.

    یک کوئری خیلی ساده رو تست کنین.




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

  1. تفاوت دو دستور تعریف یک متغیر
    نوشته شده توسط Iran58 در بخش C#‎‎
    پاسخ: 6
    آخرین پست: سه شنبه 28 بهمن 1393, 15:39 عصر
  2. پاسخ: 3
    آخرین پست: پنج شنبه 18 دی 1393, 22:41 عصر
  3. تفاوت بین دستور Case با تعریف فیلد Static درجدول
    نوشته شده توسط morteza271 در بخش T-SQL
    پاسخ: 3
    آخرین پست: پنج شنبه 06 مهر 1391, 16:00 عصر
  4. پاسخ: 2
    آخرین پست: یک شنبه 16 اردیبهشت 1386, 08:34 صبح
  5. جمع دو ستون از دو جدول همسان با تعداد رکورد های متفاوت
    نوشته شده توسط rezaei manesh در بخش گزارش سازی با Crystal Report
    پاسخ: 0
    آخرین پست: شنبه 19 آذر 1384, 17:51 عصر

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

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