PDA

View Full Version : اضافه کردن فرمول



hrj1981
جمعه 03 آبان 1392, 13:59 عصر
با سلام
دوستان آیا راه حلی وجود داره که داخل یک غیلد فرمولی بنویسیم که مثلا یکی از مقادیر هم از طریق فرمول بدست اومده باشه ؟
مثال
ما 4 تا فیلد دارم a.b.c.d
تو فرمول نویسی فیلد c گفتیم sql اتوماتیک ماحصل جمع فیلدهای a+b رو نشون بده
حالا می خواهیم تو قسمت فرمول نویسی فیلد d گیم ماحصل فیلد c روز ضرب در یک عدد کن

hossein_h62
شنبه 04 آبان 1392, 12:48 عصر
سلام
در قسمت Default Value فیلدتون میتونید فرمول دلخواه رو قرار بدید.

Reza_Yarahmadi
شنبه 04 آبان 1392, 14:00 عصر
نمیشه روی یک Computed Column یک Computed Column دیگه ایجاد کرد.
برای برطرف کردن مشکلتون یا باید فرمول ستون اول رو در ستون دوم تکرار کنید
Create Table TBL(
Field1 int,
Field2 as Field1*2,
Field3 as (Field1*2)/3
)
و یا اینکه یک View ایجاد کنید و ستون دوم رو توی اون اضافه کنید.
CREATE View viewComputedColumnTest
AS
SELECT
Field1,
Field2,
Field3 = Field2 * 2
FROM ComputedColumnTest

hrj1981
شنبه 04 آبان 1392, 15:45 عصر
ممنون از راهنمايي هاي ارزشمندتون ،
1. آيا View به صورت خودكار اطلاعات جدول رو آپديت ميكنه يا بايد فراخواني بشه ؟
2. آيا تو sql امكان داره همين فرمول نويسي را از يك جدول ديگه فراخواني كرد؟

Reza_Yarahmadi
یک شنبه 05 آبان 1392, 07:40 صبح
1. آيا View به صورت خودكار اطلاعات جدول رو آپديت ميكنه يا بايد فراخواني بشه ؟
View اطلاعاتی رو آپدیت نمیکنه ، هر جا نیاز به خوندن اطلاعات باشه باید از این View استفاده کنید
Select * From viewComputedColumnTest

2. آيا تو sql امكان داره همين فرمول نويسي را از يك جدول ديگه فراخواني كرد؟
بصورت مستقیم این امکان وجود نداره ، یا یک Function درست کنید و از اون استفاده کنید
CREATE FUNCTION TestFunction(@ID INT)
RETURNS INT
AS BEGIN
DECLARE @Result INT
SELECT @Result = COUNT(*) FROM Table_2 WHERE ID = @ID
RETURN @Result
END
ALTER TABLE Table_1
ADD
ComputedColumn AS TestFunction(ID)
و یا اینکه یک View بسازید و دستورات مورد نظرتون رو توش بنویسید
CREATE VIEW viewComputedColumnTest
AS
SELECT
T1.*,
COUNT(T2.id) AS ComputedColumn
FROM
Table_1 T1 LEFT JOIN Table_2 T2
ON
T1.id = T2.T1_id
GROUP BY
T1.id;