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

نام تاپیک: کمک در نوشتن یک کوئری CrossTab

  1. #1
    کاربر دائمی آواتار moferferi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    39
    پست
    788

    کمک در نوشتن یک کوئری CrossTab

    سلام
    من یه جدول فرم دارم که درون فیلدهای متغیری ذخیره میشن
    مانند 3 فیلد زیر.که این فیلدها داینامیکه و ممکنه بیشتر بشه


    و جدولی هم دارم که به ازای هر فیلد یک مقدار ذخیره میشه
    وقتی کاربر اطلاعات یک فرم که شامل اطلاعات جدول بالا هست را وارد میکنه درون جدول زیر ذخیره میشه و به اون یک formid اختصاص میده

    حالا میخوام از این دو جدول چینن خروجی تهیه کنم


    تا اونجایی که فهمیدم باید این گزارش را از طریق CrossTab ایجاد کنم.
    سمپل های زیادی دیدم.ولی نتونستم ازش استفاده کنم.شرمنده ولی سواد sql زیادی ندارم
    در ضمن اکثرا مثال ها واسه جداول با فیلدهای ثابت بود.اما فیلدهای جدول من داینامیکه

    با تشکر

  2. #2

    نقل قول: کمک در نوشتن یک کوئری CrossTab

    امتحان کنید:

    --حل مساله کراس تبینگ داینامیک

    --تعریف یک جدول از نوع موقت
    create table #sample
    (
    id int not null primary key,
    cntName varchar(50) not null
    );

    --درج داده های آزمایشی
    insert into #sample (id, cntName)
    values (1002, 'نام'), (1003, 'فامیل'), (1004, 'سن');

    --تعریف یک جدول از نوع موقت
    create table #sampleTable
    (
    id int not null primary key,
    groupid int not null,
    cntID int not null,
    cntValue varchar(500) not null
    );

    --درج داده های آزمایشی
    insert #sampleTable(id, groupid, cntID, cntValue)
    values (1, 1, 1002, 'حسن'),
    (2, 1, 1003, 'رضایی'), (3, 1, 1004, '30');


    --تعریف بدنه ی کوئری بصورت داینامیک
    declare @sql varchar(4000) = '';

    select @sql += ',max(case when cntID = ' + cast(id as varchar(50)) + ' then cntValue end) as ['+ cntName +']'+char(13)
    from #sample

    set @sql =
    'select groupid, ' + stuff(@sql,1,1,'') +
    'from #sampleTable
    group by groupid;'


    --اجرای رشته کوئری تولید شده در مرحله قبل
    execute (@sql)

    --حذف جداول موقت
    drop table #sample, #sampleTable

    وبلاگ من (Advanced SQL Querying)

  3. #3
    کاربر دائمی آواتار moferferi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    اصفهان
    سن
    39
    پست
    788

    نقل قول: کمک در نوشتن یک کوئری CrossTab

    سلام
    یه دنیا ممنون.نمیدونم چطور ازتون تشکر کنم.کل پروژم معطل همین کوئری بود.
    خیلی لطف کردین.

  4. #4
    کاربر دائمی آواتار fakhravari
    تاریخ عضویت
    دی 1388
    محل زندگی
    بوشهر
    سن
    34
    پست
    8,023

    نقل قول: کمک در نوشتن یک کوئری CrossTab

    نمیشه روی
    DECLARE @cc TABLE
    از نوع DECLARE نوشت؟

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

  1. کمک درباره نوشتن یک کوئری
    نوشته شده توسط rexi1r در بخش T-SQL
    پاسخ: 2
    آخرین پست: جمعه 13 مرداد 1391, 10:58 صبح
  2. کمک در نوشتن یک کوئری بصورت بازگشتی
    نوشته شده توسط M.YasPro در بخش MySQL
    پاسخ: 9
    آخرین پست: سه شنبه 05 مهر 1390, 00:13 صبح
  3. سوال: کمک برای نوشتن یه کوئری به کمک دستور JOIN
    نوشته شده توسط ghasemweb در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 22 شهریور 1390, 04:07 صبح
  4. کمک در نوشتن یک کوئری کوچک
    نوشته شده توسط پوریا_م در بخش T-SQL
    پاسخ: 3
    آخرین پست: جمعه 24 تیر 1390, 06:07 صبح
  5. کمک برای نوشتن یک کوئری برای select از یک جدول
    نوشته شده توسط PrinceDotNet در بخش SQL Server
    پاسخ: 13
    آخرین پست: شنبه 07 شهریور 1388, 21:49 عصر

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

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