درباره نویسنده

مهدی شیشه بری شیشه بری

مهدی شیشه بری

خوب به‌خاطر دارم، اوایل دهه هفتاد که سال سوم دبیرستان بودم درسی اختیاری داشتیم با عنوان کامپیوتر و مبانی انفورماتیک. در یکی از جلسات همان کلاس، معلم‌مان وقتی داشت درباره بانک‌های اطلاعاتی صحبت می‌کرد رسید به فاکس‌پرو. خیلی متوجه حرف‌هایش نشدم اما از اسم فاکس‌پرو خیلی خوشم آمده بود! آن وقت‌ها مثل الان نبود که برای رفع ابهام سوالات، تنها با چند کلیک بشود جواب آن را از توی اینترنت پیدا کرد. تابستان آن سال کلی پرس و جو کردم و کلاس آموزش فاکس‌پرو را پیدا کردم. آدم‌های توی کلاس، همه حسابدار شرکت‌های مختلف بودند و از سر اجبار آمده بودند و حضور من با آن سن و سال کم برای‌شان جای تعجب داشت. هنوز جزوه آن روزها را به یادگار نگه داشته‌ام. بعدها که وارد دانشگاه شدم، علاوه بر برنامه‌نویسی با دنیای SQL Server هم آشنا شدم تا این‌که بالاخره فهمیدم باید از میان آن‌ها یکی را انتخاب کنم و بازی روزگار این چنین مرا به دنیای بانک‌های اطلاعاتی کشاند ...

16 Comments

  1. مرتضی

     با سلام واحترام

    مرسی خیلی خوب مطلب آموزشی.
    پاسخ دادن
  2. Sahra

    Sahra

        با سلام

    خیلی عالی بود

    پاسخ دادن
  3. داود وحدانی

    داود وحدانی

       با سلام 

    و تشکر مطلب عالی بود ممنون منتظر قسمته ای بعدی این مطلب هستیم
    پاسخ دادن
  4. حسن ضرابی

    حسن ضرابی

      با سلام و خسته نباشید

    از مقاله خیلی خوبتان بسیار ممنونم خیلی خوب و عالی بود

    پاسخ دادن
  5. علی اکبر شعبانی

    علی اکبر شعبانی

       خیلی خوب بود مقالتون ممنونم

    پاسخ دادن
  6. Homa hedarpour

        خیلی خیلی منمونم ،بسیا رسا بود.

    پاسخ دادن
  7. mobtaker

        سلام استاد ، وقت بخیر

    ضمن تشکر از مقاله های مفیدتان .

    درنظر بگیرید به غیر از فیلد amount یک فیلد دیگر به عنوان Percent (درصد) نیز در جدول قرار دارد که قرار است آنرا هم بعد از چرخش در گزارش نمایش دهیم . برای این مهم چه راه کاری میشود ارایه داد.
    پاسخ دادن
  8. محسن

        خیلی خوب بود ، تشکر

    پاسخ دادن
  9. ab

        سلام

    استاد ببخشید در مثال شما تعداد داده ها(quarter) مشخص بود حال اگر تعداد داده ها مشخص نباشید چگونه باید کد مربوطه را بنویسیم
    پاسخ دادن
    1. مهدی شیشه بری شیشه بری

      مهدی شیشه بری شیشه بری

        سلام
      لطفا قسمت دوم مقاله را مطالعه کنید. پاسخ تان را آن جا پیدا خواهید کرد.
      شاد باشید.

      پاسخ دادن
  10. ab

       سلام خواندم اما متاسفانه جوابم را بدست نیاوردم

    فرض کنید
    فرض کنید جدول زیر را داریم 
    CREATE TABLE [dbo].[test۳](
        [ID] [int] IDENTITY(۱,۱) NOT NULL,
        [Date] [date] NULL,
        [Name] [nvarchar](۵۰) NULL,
        [Price] [int] NULL,
     CONSTRAINT [PK_test۳] PRIMARY KEY CLUSTERED 
    (
        [ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    و داده های زیر را داخل ان وارد کرده ایم 

    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۱’,’a’,۱۰۰)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۲’,’a’,۱۰۱)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۳’,’a’,۱۰۲)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۱’,’b’,۱۰۳)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۲’,’b’,۱۰۴)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۳’,’b’,۱۰۵)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۱’,’c’,۱۰۶)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۲’,’c’,۱۰۷)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۱’,’d’,۱۰۹)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۲’,’d’,۱۱۰)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۳’,’d’,۱۱۱)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۱’,’e’,۱۱۲)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۲’,’e’,۱۱۳)
    insert into [dbo].[test۳] values(‘۲۰۱۶-۰۵-۰۳’,’e’,۱۱۴)
    بدین صورت که به تعداد روزها سطر ایجاد شود و به تعداد داده های ستون name برای خروچی ستون ایجاد شود و قیمتهای مربوط زیر هر نام براساس ان تاریخ نمایش داده شود 
    درضمن تعداد داده های ستون name متغییر است وتعداد ثابتی ندارد 
    چگونه من باید کوئری بنویسم تا به جواب مورد نظرم برسم 
    چون من نتونستم با قسمت دوم اموزش خوب شما به جواب برسم
    اگر درست نمایش داده شود چنین چیزی می خوام

    Date    a   b   c   d   e
     
    ۲۰۱۶-۰۵-۰۱  ۱۰۰ ۱۰۳ ۱۰۶ ۱۰۹ ۱۱۲
     
    ۲۰۱۶-۰۵-۰۲  ۱۰۱ ۱۰۴ ۱۰۷ ۱۱۰ ۱۱۳
     
    ۲۰۱۶-۰۵-۰۳  ۱۰۲ ۱۰۵ ۱۰۸ ۱۱۱ ۱۱۴

    باتشکر 

    پاسخ دادن
    1. مهدی شیشه بری شیشه بری

      مهدی شیشه بری شیشه بری

        سلام
      امیدوارم منظورتان را درست متوجه شده باشم.
      لطفا اسکریپت زیر را اجرا کنید و در صورت عدم حصول نتیجه، اسکریپت خودتان را این جا بگذارید تا ببینم ایراد کار از کجاست.
      خوب و خوش باشید.

      DECLARE @Name VARCHAR(MAX)
      SET @Name=”
      SELECT @Name=@Name+Name+’,’ FROM test3
          GROUP BY Name
      SET @Name=LEFT(@Name,LEN(@Name)-1)

      EXEC(‘SELECT * FROM
       (SELECT Date,Name,Price FROM test3)t
       PIVOT
       (SUM(Price) FOR Name
       IN (‘+@Name+’))pTable’)

      پاسخ دادن
      1. ab

            باسلام و سپاس از جواب خوبتان

        دو سوال 
        1) من کد شما را چگونه می توانم تبدیل به یک ویو یا فانکشن کنم
        ۲)کدشمارا تبدیل به ویو کرده ام و از طریق کد زیر در یک دیتا گرید نمایش میدهم ولی فقط ستون name را نمایش می دهد چگونه می توانم همه ستونها را دردیتاگرید نمایش بدهم
        private void Form1_Load(object sender, EventArgs e)
               {
                   DataClasses1DataContext dc = new DataClasses1DataContext();
                   var staff = dc.aaaa();
                   radGridView1.DataSource = staff;
               }
  11. جواد پهلوان

    سلام بسیار ممنون برای مقاله بسیار خوبتون
    من از قابلیت pivot در پروسیجر استفاده کردم و وقتی میخواهم توی پروژه ام اضافه کنم میگه نوعش رو نمیشناسه
    از linq استفاده میکنم ممنون میشم اگه راهنمایی کنید
    تشکر

    پاسخ دادن
  12. هادی سعیدی

    هادی سعیدی

    باسلام
    بسیار عالی.سپاسگزار

    پاسخ دادن
  13. مصیب

    سلام و درود
    سرگذشت منم تا دبیرستان همین بود و عشق به کامپیوتر و اون یه واحد باعث شد برم ریاضی فیزیک .
    اونجا ما رو با بیسیک اشنا کردن و منم مثل شما دل تو دلم نبود چطوری یادش بگیرم .
    به قول خودت اینترنت که نبود ولی
    محل زندگی ما هییییییچ کلاسی هم نبود .
    خلاصه هیچی نشدیم .
    موفق باشی
    اموزشت عالی بود به دردم خورد.

    پاسخ دادن

ارسال نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمامی حقوق مادی و معنوی این وب سایت متعلق به نیک آموز می باشد.
این سایت توسط تیم آموزش برنامه نویسی نیک آموز مدیریت می شود.

به دلیل جلوگیری از شیوع ویروس کرونا، همایش معماری میکروسرویس به صورت آنلاین برگزار خواهد شد.
اطلاعات بیشتر
close-image