PDA

View Full Version : تعیین مقدار یک فیلد از یک سطر به طوری که مقدار آن وابسته به فیلدی دیگر از همان سطر جدول باشد .



pooya1072
پنج شنبه 15 فروردین 1392, 11:24 صبح
سلام
من جدولی دارم که شامل 2 ستونه . ستون اول از نوع Date و ستون دوم از نوع integer. من میخوام مقدار ستون دوم همیشه عدد روز , از ستون اول باشه. به طور مثال اگه مقدار ستون اول تاریخ 13/1/1392 باشه مقدار ستون دوم از این سطر بشه عدد 13
من می خوام فقط تاریخ رو وارد کنم و فیلد دوم بصورت خودکار مقدار مورد نظر رو بگیره . آیا این کار ممکنه؟ چه روشی رو پیشنهاد می کنید ؟

fakhravari
پنج شنبه 15 فروردین 1392, 12:04 عصر
تاریخی که شما دادین برای نوع date نا معتبر است.
اگر میخواهید از اون نوع استفاده کنید باید از nchar10 استفاده کنید.
به راحتی با sub string میتونید همچین کاری کنید .

tooraj_azizi_1035
پنج شنبه 15 فروردین 1392, 12:25 عصر
شما می خواید یک مقدار محاسبه شده رو در یک ستون جداگانه ذخیره کنید. این کار درستی نیست چون مقدار محاسبه شده رو در جدول ذخیره نمی کنند بلکه یا با کوئری اون رو بدست میارن یا در Application اون رو محاسبه می کنند.



USE AdventureWorks2012;
GO
SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Person
WHERE LastName like 'Barl%'
ORDER BY LastName;

Here is the result set.

LastName Initial

-------- -------

Barley R

Barlow B

(2 row(s) affected)

pooya1072
پنج شنبه 15 فروردین 1392, 12:32 عصر
ببینید دوستان... من از این جدول در ویبی استفاده می کنم . این جدول در قالب یک Datagridview نمایش داده میشه که بوسیله یک DataTable به گریدویو متصل میشه . از من خواسته شده که توی دیتاگریدویو تاریخ رو نمایش ندم ...فقط روز تاریخ نمایش داده بشه ... ولی در جدول اصلی باید تاریخ رو داشته باشم . حالا چطور از جدولی که توی اون تاریخ دارم , عدد روز رو به دیتاگریدویویی ارسال کنم که بوسیله DataTable به این جدول متصله ؟
امیدوارم منظورم رو رسونده باشم.

یوسف زالی
پنج شنبه 15 فروردین 1392, 13:01 عصر
سلام.
همون طور که دوستان گفتند کار در حد یک SubString هست.
می تونید به جای این کار در رویداد هایی مثل OnGetText یا یک همچین چیزی (در وی بی نمی دونم چی می شه) هم این کار رو در فضای UI انجام بدید.
توضیحات کامله. کمی هم خودتون زحمت بکشید.

tooraj_azizi_1035
پنج شنبه 15 فروردین 1392, 13:10 عصر
جواب شما رو دادم گفتم باید در عبارت SELECT تون فیلد محاسبه شده رو روی تاریخ محاسبه کنید تا به عنوان یک ستون محاسبه شده نمایش داده بشه.

SELECT YourDateColumn, SUBSTRING(YourDateColumn, CHARINDEX('/',REVERSE(YourDateColumn)) FROM YourTable