PDA

View Full Version : محاسبه ی فرمول پویا



pooyansystem
دوشنبه 12 بهمن 1388, 13:09 عصر
سلام دوستان
من يك جدول دارم يه فيلد جدولم nvarchar است و حاوي يك سري فرمول كه شامل عدد و علامت هاي رياضي و يك سري موارد خاص كه خودم نوشتم و در واقع مقدار يك سري از فيلدهاي جداولم هستند مي باشد مثلا


10*f(0)/100

كه f(0) بايد مقدار فيلد f در جدول t را به شرط اينكه id=0 باشد برگرداند آيا من ميتونم مقدار عددي عبارت بالا رو به دست بيارم

محمد سلیم آبادی
دوشنبه 12 بهمن 1388, 20:24 عصر
سلام،
از Computed Column استفاده کردین؟ و آیا f یک UDF است؟ و آیا امکان داره بیشتر توضیح بدین؟

pooyansystem
سه شنبه 13 بهمن 1388, 08:02 صبح
سلام و ممنون که جواب دادید

آیا امکان داره بیشتر توضیح بدین؟
من در برنامم می خوام به کاربرم این اجاره رو بدم که خودش فرمول تعریف کنه و من موقع محاسباتم از اون استفاده کنم یه چیزی در مایه های فرمول نویسی در برنامه های حقوق و دستمزد . مثلا من در جدول MyTable ستونی دارم که این ستون می تونه مقادیر ثابت بگیره یا یه فرمول



MyTable
---------------------
value Name id
2000 f1 0
F(0)*10+25 f2 1

حالا من می خوام مقدار عددی f2 را بدست بیارم 2000*10+25=20025



آیا f یک UDF است؟
f در اينجا يك نماد است ولي در واقع بايد يك تابع براي اون نوشت

محمد سلیم آبادی
سه شنبه 13 بهمن 1388, 12:34 عصر
شما می توانید ستونی داشته باشید که حاصل یک عبارت باشه. مثلا در مثال خودتان کوئری به شکل زیر در خواهد آمد:
select id, name, value*10+25 as formol, value
from mytable

حالا چون ممکنه عبارت متغیر باشه شما ناچارین از Dynamic SQL استفاده کنید.

راجب ستون محاسباتی و udf در همین سایت جستجو کنید

pooyansystem
سه شنبه 13 بهمن 1388, 12:43 عصر
ممنون ميشم اگه بيشتر توضيح بديد

pooyansystem
چهارشنبه 14 بهمن 1388, 11:49 صبح
كسي نميتونه به من بگه چطوري مقدار عدي يه فيلد varchar رو كه در واقع فرمول هاي من هستند به دست بيارم
varchar ------> عبارت محاسباتي
"100*20" -----> 100*20=2000

محمد سلیم آبادی
چهارشنبه 14 بهمن 1388, 21:17 عصر
از دستور exec برای انجام این کار استفاده کنید. select می تواند نتیجه ی محاسبه ی یک عبارت را به نمایش در بیاورد.


declare @sql varchar(10);
set @sql = '20*100';

exec('select '+@sql);

pooyansystem
شنبه 17 بهمن 1388, 08:51 صبح
ممنون
يه مشكل ديگه هم دارم من مي خوام اين مقدار و يك ستون ديگه از جدولم را از طريق كدنويسي در #c بدست بيارم چه طوري ميتونم اين كار را بكنم

محمد سلیم آبادی
شنبه 17 بهمن 1388, 09:56 صبح
برای این کار می تونید از Stored Procedure استفاده کنید. این سوال رو در تالار #C مطرح کنید