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

نام تاپیک: خطا در ایجاد جدول pivot

  1. #1
    کاربر دائمی آواتار khorsandreza
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تبریز
    پست
    748
    تشکر کردن
    127
    245 بار تشکر شده در 135 پست

    خطا در ایجاد جدول pivot

    سلام دوستان من یک جدول دارم به شکل زیر

    MK.jpg

    حال می خواهم از فیلد Name بعنوان عناوین ستون ها و فیلد Value مقادیر ستون ها باش از صبح کلافه ام کرده اگر دوستان راهنمائی بکنند ممنون میشوم

  2. #2
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    پست
    7,665
    تشکر کردن
    1,030
    3,098 بار تشکر شده در 2,270 پست

    نقل قول: خطا در ایجاد جدول pivot


  3. #3
    کاربر دائمی آواتار khorsandreza
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تبریز
    پست
    748
    تشکر کردن
    127
    245 بار تشکر شده در 135 پست

    نقل قول: خطا در ایجاد جدول pivot

    نقل قول نوشته شده توسط fakhravari مشاهده تاپیک
    ممنون از راهنمائیتان این ها را دیدم اگر دقت کنید این جدول ساختار خاصی دارد

  4. #4
    مدیر بخش آواتار Mahmoud.Afrad
    تاریخ عضویت
    مرداد 1387
    پست
    3,473
    تشکر کردن
    58
    2,744 بار تشکر شده در 2,161 پست

    نقل قول: خطا در ایجاد جدول pivot

    کوئری خودتون چیه؟ خطا؟

    و چرا ساختار جدول به اینصورت هست؟

  5. #5
    کاربر دائمی آواتار khorsandreza
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تبریز
    پست
    748
    تشکر کردن
    127
    245 بار تشکر شده در 135 پست

    نقل قول: خطا در ایجاد جدول pivot


    SELECT prnt, [34] AS cesr, [1] AS lnam, [2] AS fnam, [4] AS dtav, [25] AS adrs
    FROM (SELECT Name,Value,NameCode,prnt FROM TestP) p
    PIVOT
    ( COUNT (name)
    FOR NameCode IN( [34], [1], [2], [4], [25] )
    ) AS pvt

    یه برنامه نویس و یه شرکت حرفه (ارایورز) این برنامه را نوشته به ازای هر فرد 35 رکورد ذخیره میشه
    تصویر زیر اطلاعات یک نفر است
    111.jpg

  6. #6
    مدیر بخش آواتار Mahmoud.Afrad
    تاریخ عضویت
    مرداد 1387
    پست
    3,473
    تشکر کردن
    58
    2,744 بار تشکر شده در 2,161 پست

    نقل قول: خطا در ایجاد جدول pivot

    آخه چنین ساختاری وقتی استفاده میشه که خصوصیات(نام، نام خانوادگی،...) تعداد مشخصی نداشته باشند مثلا برای ذخیره اجناس با ویژگی های متفاوت. در ثانی اشتباه دیگر برنامه نویس این برنامه این بوده که سطرهایی که value اونها null بوده اصلا نیاز به ذخیره سازی نداشته اند. و سوم اینکه ستون Name کلا اضافه هست(حجم زیادی فقط برای مقادیر تکراری این ستون هدر میره) و میتونست در یک جدول دیگر باشه و با ستون namecode جوین بشه.

    اما در مورد کوئری، لینک زیر دقیقا مشابه سوال شما رو جواب دادم. منتها در اون کد یک rownumber اضافه کردم که برای شما نیاز نیست و به جاش از namecode استفاده کنید.
    http://barnamenevis.org/showthread.p...=1#post2348571

  7. #7
    کاربر دائمی آواتار khorsandreza
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تبریز
    پست
    748
    تشکر کردن
    127
    245 بار تشکر شده در 135 پست

    نقل قول: خطا در ایجاد جدول pivot

    سلام با تشکر از اینکه زحمت کشیدید راهنمائی کردید من مطابق شکل راهنمائی های شما انجام دادم

    select namecode,
    max([34]) ,
    max([1]) ,
    max([2]) ,
    max([4]) ,
    max([25]))
    from
    ( select namecode, [34] AS cesr, [1] AS lnam, [2] AS fnam, [4] AS dtav, [25] AS adrs
    from testp
    pivot ( max(pk_id)
    for namecode in([34], [1], [2], [4], [25])
    ) as pppp
    )


    خطا میده و یا من شکل دستورات را اشتباه طراحی کردم ببیند این جدول را طوری طراحی کردن که اگر نیاز به فیلد جدیدی در مشخصات فردی بود خود کاربر بتواند تولید کند و نرم افزار به ازای فیلد تولید شده یک ادیت باکس و کمبو باکس به اینترفیس اضافه می کند من می خواهم از روی این جدول یک ویو طراحی کنم کار از 35 رکور هر کدام را از لیست باک انتخاب کرد بصورت یک رکورد نشان بدهد ستون Name بعنوان عناوین ستون ها و ستون Value بعنوان مقادیر هر رکورد نمایش داده بشود ستون "کد شناسه" در تمام گزارش ها اورد خواهد شد ولی بقیه فیلدها اختیاری باشد و براساس خواسته کاربر تغییر یابد
    یعنی بشکل زیر باشد
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg KK.jpg‏ (89.6 کیلوبایت, 10 دیدار)
    آخرین ویرایش به وسیله khorsandreza : دوشنبه 26 تیر 1396 در 09:56 صبح

  8. #8
    مدیر بخش آواتار Mahmoud.Afrad
    تاریخ عضویت
    مرداد 1387
    پست
    3,473
    تشکر کردن
    58
    2,744 بار تشکر شده در 2,161 پست

    نقل قول: خطا در ایجاد جدول pivot

    SELECT 
    max([1]) as lastname,
    max([2]) as FirstName,
    max([3]) as Alias,
    max([4]) as BirthDate,
    max([5]) as BirthPlace,
    prnt
    FROM [TableName]
    PIVOT
    (
    max(value)
    FOR namecode IN ([1] ,[2] ,[3] ,[4] ,[5])
    ) AS pivottable
    group by prnt


    چون تعداد مشخصات ثابت نیست و ممکنه بیشتر بشه باید کوئری را به صورت داینامیک ایجاد کنید. در موردش میتونید جستجو کنید. البته در اینصورت کوئری مستعد نفوذ خواهد شد(sql injection) که باز میتونید در موردش جستجو کنید.

  9. کاربرانی که به خاطر مطلب مفید Mahmoud.Afrad از وی تشکر کرده‌اند:


  10. #9
    کاربر دائمی آواتار khorsandreza
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تبریز
    پست
    748
    تشکر کردن
    127
    245 بار تشکر شده در 135 پست

    نقل قول: خطا در ایجاد جدول pivot

    ممنون دقیقا همین را میخواستم
    دقیقا منظورتان از "(sql injection)" را متوجه نشدم البته میدانم برای تزریق بعضی کدها برای لاگین و این نوع کارها ولی در اینجا خیلی متوجه نشدک البته اطلاعات من روی بستر اینترنت نیست رو سرور داخلی هست

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

  1. خطا در ایجاد 3تا FK از یک جدول در جدول دیگر
    نوشته شده توسط sayanpro در بخش Management Studio
    پاسخ: 1
    آخرین پست: سه شنبه 26 اسفند 1393, 13:31 عصر
  2. خطا هنگام ایجاد جدول در دیتابیس
    نوشته شده توسط sasan_22 در بخش T-SQL
    پاسخ: 3
    آخرین پست: دوشنبه 15 آبان 1391, 15:45 عصر
  3. خطا در ایجاد جدول
    نوشته شده توسط mortaza_bn در بخش T-SQL
    پاسخ: 2
    آخرین پست: چهارشنبه 25 خرداد 1390, 16:20 عصر
  4. سوال: خطا در ایجاد دیتابیس یا جدول جدید
    نوشته شده توسط zahra rajaee در بخش SQL Server
    پاسخ: 1
    آخرین پست: پنج شنبه 27 فروردین 1388, 16:28 عصر
  5. خطا در ایجاد جدول در sql 2000 با اسکریپت نویسی درسی شارپ
    نوشته شده توسط mohammady2 در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 4
    آخرین پست: شنبه 19 مرداد 1387, 12:51 عصر

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

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