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

نام تاپیک: ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

  1. #1

    ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

    سلام
    من برای گزارش گیری در C#‎ از دیتابیس SQL یک جدول به شکل زیر دارم:
    تاریخ مقدار
    9601 1
    9602 5
    9603 8
    9604 9
    می خوام یک view بنویسم که مقادیر رو به صورت تجعی در کنار تاریخ قرار بدیه مثلا در مقدار رکورد 9602 مقدار ماه اول رو با دم جمع کنه و به جای 5 بنویسه 6 به عبارتی View به شکل زیر در بیاد:
    تا تاریخ مقدار تجمعی
    9601 1
    9602 6
    9603 14
    9604 23

    لطفا مثل همیشه راهنمایی کنید.

    ممنون.

  2. #2
    مدیر بخش آواتار danialafshari
    تاریخ عضویت
    تیر 1387
    محل زندگی
    هر کجا هستم باشم آسمان مال من است
    پست
    2,770

    نقل قول: ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

    با سلام
    میتونید از Window Function و PARTITION استفاده کنید
    جدول:
    CREATE TABLE REVENUE(
    [DepartmentID] int,
    [Revenue] int,
    [Year] int
    );
    GO

    اطلاعات:
    insert into REVENUEvalues (1,10030,1998),(2,20000,1998),(3,40000,1998),
    (1,20000,1999),(2,60000,1999),(3,50000,1999),
    (1,40000,2000),(2,40000,2000),(3,60000,2000),
    (1,30000,2001),(2,30000,2001),(3,70000,2001),
    (1,90000,2002),(2,20000,2002),(3,80000,2002),
    (1,10300,2003),(2,1000,2003), (3,90000,2003),
    (1,10000,2004),(2,10000,2004),(3,10000,2004),
    (1,20000,2005),(2,20000,2005),(3,20000,2005),
    (1,40000,2006),(2,30000,2006),(3,30000,2006),
    (1,70000,2007),(2,40000,2007),(3,40000,2007),
    (1,50000,2008),(2,50000,2008),(3,50000,2008),
    (1,20000,2009),(2,60000,2009),(3,60000,2009),
    (1,30000,2010),(2,70000,2010),(3,70000,2010),
    (1,80000,2011),(2,80000,2011),(3,80000,2011),
    (1,10000,2012),(2,90000,2012),(3,90000,2012)
    GO

    کوئری :
     select Year, DepartmentID, Revenue,sum(Revenue) OVER (PARTITION by DepartmentID ORDER BY [YEAR]
    ROWS BETWEEN 3 PRECEDING AND CURRENT ROW) as Prev3
    From REVENUE order by departmentID, year;
    GO

    منبع : http://www.dotnettips.info/post/1142...A7%D9%88%D9%84
    موفق باشید
    لطفاً از پرسیدن سوال در خصوصی خودداری کنید.
    قبل از ایجاد تاپیک، حتماً قوانین سایت را مطالعه فرمایید.
    قوانین پرسش های دانشجویی
    برای درست وارد شدن کد در قالب C#‎‎‎ سایت، ابتدا کد رو درون Notepad.exe کپی سپس از اونجا به سایت در قالب C#‎‎‎ منتفل کنید
    نرم افزار code manager دستیار برنامه نویسان جهت نگهداری کد ها

  3. #3

    نقل قول: ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

    سلام
    ممنون از پاسختون
    من کد بالا رو برای جدولم به شکل زیر وارد کردم از Over تو view ارور می گیره
    select date,sum(qty) over (partition by date order by [date] rows between 2 preceding and current row) as prev3 from table1

  4. #4
    کاربر دائمی آواتار farhad_shiri_ex
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    669

    نقل قول: ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

    نقل قول نوشته شده توسط tolid123456789 مشاهده تاپیک
    سلام
    ممنون از پاسختون
    من کد بالا رو برای جدولم به شکل زیر وارد کردم از Over تو view ارور می گیره
    select date,sum(qty) over (partition by date order by [date] rows between 2 preceding and current row) as prev3 from table1
    این syntax usage برای دستور over از sql server 2012 به بعد سازگار هست در 2008 و قبل اون شکل دستورش فرق میکنه!

  5. #5

    نقل قول: ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

    سلام
    ممنون از پاسختون
    Sql من 2008 هست.
    امکان داره شکل دستوریش رو تو sql2008 ارسال کنید؟

  6. #6
    کاربر دائمی آواتار farhad_shiri_ex
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    669

    نقل قول: ایجاد یک View برای مقادیر تجمعی در جدول(لطفا کمک کنید)

    نقل قول نوشته شده توسط tolid123456789 مشاهده تاپیک
    سلام
    ممنون از پاسختون
    Sql من 2008 هست.
    امکان داره شکل دستوریش رو تو sql2008 ارسال کنید؟
    این شکل استفاده از دستور OVER در 2008 ..

    select id,date,sum(qty) over(PARTITION BY date) as prev3
    from table_1
    order by id,date

    در دستور فوق هر تاریخ را به هرتعدادی که باشد به یک پارتیشن جدا نمایش داده می شود و هر بخش هم جدا گانه مرتب شده است.
    برای اینکه بتوانید خروجی کوئری که می خواهید ایجاد کنید باید خودتون Function و Sp بنویسید که این کار برای شما انجام بده البته در 2008

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

  1. سوال: ایجاد یک مدیاپلیر برای پخش فیلم در سایت
    نوشته شده توسط mahetaban در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: سه شنبه 06 فروردین 1392, 21:50 عصر
  2. آموزش: کمک به مبتدی برای ایجاد قدم به قدم سیستم کتابخانه(بدون گرافیک)...لطفا کمک کنید
    نوشته شده توسط golsa_6 در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 4
    آخرین پست: دوشنبه 14 فروردین 1391, 11:24 صبح
  3. ایجاد یک View بدهکار بستانکار ار دو جدول
    نوشته شده توسط nilmil_nil در بخش T-SQL
    پاسخ: 5
    آخرین پست: یک شنبه 06 شهریور 1390, 07:58 صبح
  4. سوال: مشکل در fileupload (لطفا کمک کنید)
    نوشته شده توسط compute87 در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: شنبه 19 اردیبهشت 1388, 22:35 عصر
  5. چند تا سوال در C++‎ لطفا کمک کنید............
    نوشته شده توسط xman_dj در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 8
    آخرین پست: یک شنبه 27 آبان 1386, 11:14 صبح

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

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