PDA

View Full Version : قراردادن حاصلجمع دو فیلد در یک فیلد



zeinabm
یک شنبه 04 مرداد 1388, 08:37 صبح
سلام
من یه جدول دارم که سه تا فیلد داره، می خواهم حاصل جمع دوتا از فیلد ها توی فیلد سوم قرار بگیره. یعنی همزمان که من درون دو تا فیلد اول داده وارد می کنم حاصل جع شان بره تو فیلد سوم.
می خواستم بدونم راهی هست، لطفا مرا راهنمایی کنید.

Reza_Yarahmadi
یک شنبه 04 مرداد 1388, 11:15 صبح
یه راه اینه که همون زمان که داری دو فیلد رو اضافه میکنی جمعشون رو هم به عنوان فیلد سوم بفرستی به بانک!!
ولی راه بهتر اینه که 2 تا تریگر (Trigger) به بانکت اضافه کنی یکی برای اضافه کردن و دومی برای ویرایش. توی هر دو ، وقتی یه رکورد وارد یا ویرایش شد دو تا فیلد رو با هم جمع کنه و توی فیلد سوم بریزه.
یه نمونه تریگر برای اضافه کردن:

CREATE TRIGGER InsertTrigger
ON Table1
FOR INSERT
AS
declare @Temp int
select @Temp = a + b from Inserted
update Table1 set c = @Temp where (a = (select a from inserted)) and (b = (select b from inserted))

majid325
یک شنبه 04 مرداد 1388, 14:21 عصر
نیازی به تریگیر نیست و سعی کنید در برنامه هاتون از تریگیر استفاده نکنید.

SELECT F1, F2, F1 + F2 AS [Sum] FROM Table1;

mn_zandy63
یک شنبه 04 مرداد 1388, 19:20 عصر
می خواهی اتوماتیک بره توی فیلد سوم؟
خب وقتی داری Insert میکنی. خیلی راحت جمع مقادیر اول و دوم رو بریز توی فیلد سوم.

اما حدس میزنم منظورت اینه که توی DataGridView یا یه همچین جایی اتوماتیک اتفاق بیفته. آیا اینطوره؟

منصور بزرگمهر
یک شنبه 04 مرداد 1388, 22:34 عصر
خیلی ساده است، یک ستون فرمول دار تعریف کن. به قسمت دیزاین جدول برو، قسمت Comput Column Spicifcation را باز کن در مورد Formul بنویس A + B یعنی ستون اول بعلاوه ستون دوم خودکار حساب میکند ستون سوم. یا هنگام طراحی جدول در T-SQL باید اینگونه تایپ کنی name_column as A + B یا name_column as DataAdd(Day,30,invDate) و غیره
این ستون حتی می تواند ایندکس (غیر خوشه ای) نیز بشود.

این در SQL Server صادق است.