azadeh_1510
سه شنبه 06 اسفند 1392, 18:00 عصر
سلام دوستان
من یه کد دارم که مفهوم قسمتی که از stuff استفاده کرده و خیلی کم متوجه شدم و قسمتی که از XML
استفاده کرده رو اصلا متوجه نشدم!
SELECT DISTINCT TOP (100) PERCENT dbo.MedicalCosts.Title, dbo.MedicalCosts.Id, STUFF
((SELECT ',' + MedicalDocumentTypes.Name
FROM view_MedicalCostByDocuments
WHERE MedicalCost_Id = MedicalCosts.Id FOR XML PATH(''), type ).value('.', 'nvarchar(max)'), 1, 1, '') AS DocumentsName
FROM MedicalCosts INNER JOIN
MedicalDocuments ON MedicalCosts.Id = MedicalDocuments.MedicalCost_Id INNER JOIN
MedicalDocumentTypes ON MedicalDocuments.MedicalDocumentType = MedicalDocumentTypes.Id
در ادامه این قطعه کد قراره به ازای هر dbo.MedicalCosts.Titleیا dbo.MedicalCosts.Id
نام مدارک که به نام فیلد DocumentsName هست رو یه کاما اضافه کنه
یعنی مثلا بگه که به ازای یک title چه مدارکی (DocumentsName )وجود داره...
مثلا بشه:
دندانپزشکی : نسخه ، دستور پزشک
--------------------------------------
اما الان اتفاق که میفته خروجی اینه:
دندانپزشکی:نسخه ، نسخه
دندانپزشکی : دستور پزشک، دستور پزشک
من یه کد دارم که مفهوم قسمتی که از stuff استفاده کرده و خیلی کم متوجه شدم و قسمتی که از XML
استفاده کرده رو اصلا متوجه نشدم!
SELECT DISTINCT TOP (100) PERCENT dbo.MedicalCosts.Title, dbo.MedicalCosts.Id, STUFF
((SELECT ',' + MedicalDocumentTypes.Name
FROM view_MedicalCostByDocuments
WHERE MedicalCost_Id = MedicalCosts.Id FOR XML PATH(''), type ).value('.', 'nvarchar(max)'), 1, 1, '') AS DocumentsName
FROM MedicalCosts INNER JOIN
MedicalDocuments ON MedicalCosts.Id = MedicalDocuments.MedicalCost_Id INNER JOIN
MedicalDocumentTypes ON MedicalDocuments.MedicalDocumentType = MedicalDocumentTypes.Id
در ادامه این قطعه کد قراره به ازای هر dbo.MedicalCosts.Titleیا dbo.MedicalCosts.Id
نام مدارک که به نام فیلد DocumentsName هست رو یه کاما اضافه کنه
یعنی مثلا بگه که به ازای یک title چه مدارکی (DocumentsName )وجود داره...
مثلا بشه:
دندانپزشکی : نسخه ، دستور پزشک
--------------------------------------
اما الان اتفاق که میفته خروجی اینه:
دندانپزشکی:نسخه ، نسخه
دندانپزشکی : دستور پزشک، دستور پزشک