PDA

View Full Version : راهنمايي براي نوشتن يك Select



lm48390
سه شنبه 03 اسفند 1389, 12:21 عصر
با سلام
من دو جدول دارم. جدول اولي شامل كدپروژه و نام پروژه است و جدول دومي داراي قيمت، كد، تاريخ، شرح مي باشد . كه در اين فيلد شرح، يك كد پروژه يا چند كد پروژه در آن نوشته شود. چگونه و با چه دستوري مي توانم پي ببرم كه كاربر، حداقل يك كدپروژه از جدول اول را در فيلد شرح ، وارد كرده است.
با تشكر از راهنمايي شما

Reza_Yarahmadi
سه شنبه 03 اسفند 1389, 15:26 عصر
ساختار فيلد شرح چطوره؟ فقط كد پروژه ها رو ميگيره يا اطلاعات ديگه اي داره و توي همه اطلاعات كد پروژه هم ممكنه قرار داشته باشه؟
ميشه چند نمونه ركورد اينجا بذاريد؟

lm48390
چهارشنبه 04 اسفند 1389, 07:25 صبح
با تشكر از پاسخ شما
مثلا در جدول اول ركوردهاي زير وجود دارد
َA001-پروژه سيمان
A002-پروژه شازند
A003- عسلويه
در جدول دوم،فيلد شرح ميتواند شامل يك يا چند كد پروژه باشد مانند A001-A003 يا A001 يا شرح مي تواند شامل كد پروژه هاي اشاره شده در جدول اول نباشد. من مي خواهم ركوردهايي از جدول دوم استخراح كنم كه در فيلد شرح، كد كد پروژه هاي اشاره شده در جدول اول در آن نبست. با تشكر

Reza_Yarahmadi
چهارشنبه 04 اسفند 1389, 08:02 صبح
جواب سوال منو نداديد ، فقط كد پروژه ها رو ميگيره يا اطلاعات ديگه اي داره و توي همه اطلاعات كد پروژه هم ممكنه قرار داشته باشه؟
در صورتيكه فقط يك سري كد پروژه داره كه بعضي هاشون كد پروژه معتبر هستند ميتونيد از روش زير استفاده كنيد.

With res as(
Select *
From dbo.TableName t Left Outer Join dbo.Projects p
On CharIndex(Cast(P.PId as varchar) + '-', t.PIds + '-')<> 0
)
Select Distinct
ID,
Name,
PIds,
ProjectName = (Select ProjectName + '-' From res Where Id =r.Id For XML Path(''))
From res r
(بخش اول كد 2 جدول با داده هاي فرضي ميسازه و از دستور With به بعد كاري كه شما ميخويد رو انجام ميده. در ضمن اين دستور از 2005 به بالا كار ميكنه)

lm48390
چهارشنبه 04 اسفند 1389, 12:58 عصر
Reza_Yarahmadi (http://barnamenevis.org/member.php?97318-Reza_Yarahmadi) عزيز با تشكر از توجه شما
در جواب سوال شما بايد بگويم فيلد شرح، ااطلاعات ديگه اي داره و توي آن اطلاعات كد پروژه هم ممكنه باشد. sql server مورد نظر من، 2000 مي باشد. من مي خواهم ركوردهايي را پيدا كنم كه در فيلد شرح آن حداقل يك كد پروژه در آن آورده باشد.