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

نام تاپیک: چه طوری میشه این ویو رو نوشت

  1. #1

    چه طوری میشه این ویو رو نوشت

    با سلام خدمت دوستان عزیزم
    من یک ویو دارم که سه تا از فیلدهای اون idو debit و credit هستن حالا میخوام مانده تجمیعی debit و credit رو در دو فیلد جدا نشون بده و یک فیلد هم حاصل اختلاف دو فیلد جدید رو نشون بده (البته مانده در خط)
    زحمت میکشید

  2. #2

    select sum(debit) as sum_debit, sum(credit) as sum_credit, sum(debit) - sum(credit) As diff
    from Table1

  3. #3
    می تونی از قسمت formula در لحظه ساخت جدول در sql server استفاده کنی و نتیجه محاسبات رو همیشه داشته باشی مگه اینکه بخوای dynamic محاسبه اش کنی

  4. #4
    با سلام
    odise جان ممنون . اما این چیزی نیست که من میخوام .
    می تونی از قسمت formula در لحظه ساخت جدول در sql server استفاده کنی و نتیجه محاسبات رو همیشه داشته باشی مگه اینکه بخوای dynamic محاسبه اش کنی
    hamed جان دست شما درد نکنه . خیلی وقته دنبال این هستم یه جوری از این قسمت استفاده کنم و فرمول هایی مثل sum و count و ... در اون استفاده کنم میشه یه مثالی در این زمینه بزنید

    دوستان لطفا تصویر زمینه رو نگاه کنید . مطمئن هستم که راه حلی داره . بدجوری گیر کردم

    یک دنیا لطف میکنید
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg sum.JPG‏ (16.1 کیلوبایت, 19 دیدار)

  5. #5
    من قبلا اسکریپتی نوشته بودم که عمل مشابه رو انجام میداد، شاید دقیقا هدف شما این نباشه، اما تکنیکش رو میتونین برای خودتون Customize کنین:

    در اینجا یک جدول میسازیم و با اعداد Random مقدار دهی میکنیم:


    create table tx(c1 int identity primary key, c2 int)

    declare @counter int
    set @counter=0
    while @counter<>30000
    begin
    insert tx(c2) select rand()*10
    set @counter=@counter+1
    end

    select * from tx


    و در اینجا محاسبه رو انجام میدیم:


    declare @t1 table (c1 int primary key,c2 int,acc int)

    declare @acc int
    set @acc=0
    declare @start int
    select @start=min(c1) from tx

    while 1=1
    begin
    insert @t1 select c1,c2,c2+@acc from tx where c1=@start
    select @start=min(c1) from tx where c1>@start
    if @start is null break
    select @acc=acc from @t1 where c1=(select max(c1) from @t1)
    end

    select * from @t1

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

    لطف میکنید

  7. #7
    خیلی وقته دنبال این هستم یه جوری از این قسمت استفاده کنم و فرمول هایی مثل sum و count و ... در اون استفاده کنم میشه یه مثالی در این زمینه بزنید
    ببین دوست من این formula فقط سطری عمل میکنه نه ستونی و به ازای هر رکورد و تنها برای ستون های هر رکورد امجزا اعمال میشه پیس اگه قصد جمع گیری یا .. رو روی رکورد هات به صورت ستونی داری این روش رو بی خیال شو .ولی اگه قصدت همون ستری عمل کردنه شما خیلی راحت میتونی توی قسمت formula ستونی که میخوای نتیجه توش قراربگیره فرملت رو که متغیر هاش اسم ستون هات هست رو بنویسی به همین راحتی

  8. #8
    سلام
    hamed جان خیلی لطف کردی

  9. #9
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    71
    فکر میکنم بهترین راحش این باشه که محاسباتت رو سمت کلاینت (با application خودت) انجام بدی اینجوری میتونه خیلی سریعتر باشه و صد البته تو دست تر در غیر اینصورت راه حل مناسبش به نظر من استفاده از کرسر هستش که باز هم ممکنه کند به نظر بیاد

  10. #10
    سلام
    دوست عزیزم object خیلی لطف کردی

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

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