PDA

View Full Version : سوال: مشکل این کوئری چیه؟؟؟ طریقه استفاده از متد FOR XML PATH



raziyehbazargan
شنبه 31 فروردین 1392, 10:32 صبح
سلام دوستان
من چند روزه به خاطر این مشکل کارم گیره
ممنون میشم راهنمایی کنید

میخوام به ازای هر آی دی فقط یک رکورد داشته باشم و فیلد آخراطلاعاتش با هم مرج بشه

جستحو کردم با استفاده از متد FOR XML PATH میشه اسنکارو انجام داد اما همش به ارور بر میخورم

ممنون میشم راهنمایی کنید و بگید مشکل این کئوری چیه؟؟


SELECT Id, ContainerNo, DamageDate, ContainerType, Size, DamageType, Position, Contractor, Is_Services,STUFF(
(SELECT ',' + a. DmgPosition AS [text()]
from dbo.View_TotalDamages_Rep a
where a.Id = b.Id
Order by a. DmgPosition
for xml PATH('')),1,1,'' ) AS Comments_Concatenated
from dbo.View_TotalDamages_Rep b
group by Id



این لینک طریقه استفاده از این متد و نشون داده
http://www.mahipalreddy.com/blog/?p=79

raziyehbazargan
شنبه 31 فروردین 1392, 11:13 صبح
سلام دوستان
من چند روزه به خاطر این مشکل کارم گیره
ممنون میشم راهنمایی کنید

میخوام به ازای هر آی دی فقط یک رکورد داشته باشم و فیلد آخراطلاعاتش با هم مرج بشه

جستحو کردم با استفاده از متد FOR XML PATH میشه اسنکارو انجام داد اما همش به ارور بر میخورم

ممنون میشم راهنمایی کنید و بگید مشکل این کئوری چیه؟؟


SELECT Id, ContainerNo, DamageDate, ContainerType, Size, DamageType, Position, Contractor, Is_Services,STUFF(
(SELECT ',' + a. DmgPosition AS [text()]
from dbo.View_TotalDamages_Rep a
where a.Id = b.Id
Order by a. DmgPosition
for xml PATH('')),1,1,'' ) AS Comments_Concatenated
from dbo.View_TotalDamages_Rep b
group by Id



این لینک طریقه استفاده از این متد و نشون داده
http://www.mahipalreddy.com/blog/?p=79




فقط با دو فیلد جواب میده


SELECT Id, STUFF
((SELECT ',' + a.DmgPosition AS [text()]
FROM dbo.View_TotalDamages_Rep a
WHERE a.Id = b.Id
ORDER BY a.DmgPosition FOR xml PATH('')), 1, 1, '') AS Comments_Concatenated
FROM dbo.View_TotalDamages_Rep b
GROUP BY Id

Mahmoud.Afrad
شنبه 31 فروردین 1392, 13:41 عصر
ستونهایی که مقادیر یکسان دارند رو باید در گروهبندی شرکت داد.

SELECT Id,
ContainerNo,
DamageDate,
ContainerType,
Size,
DamageType,
Position,
Contractor,
Is_Services,
STUFF(
(SELECT ',' + View_TotalDamages_Rep.DmgPosition AS [text()]
from dbo.View_TotalDamages_Rep
Order by View_TotalDamages_Rep.DmgPosition
for xml PATH(''))
,1,1,'') AS Comments_Concatenated
from dbo.View_TotalDamages_Rep
group by Id,
ContainerNo,
DamageDate,
ContainerType,
Size,
DamageType,
Position,
Contractor,
Is_Services

salehi20
چهارشنبه 11 اردیبهشت 1392, 11:52 صبح
سلام
در یک کوئری میخام مشخص کنم که مثلا
member1 در دو رشته ی والیبال و فوتبال cup1 و cup2 شرکت کرده
member2 در سه رشته والیبال و فوتبال و بسکتبال cup1و cup2 وCup3 شرکت کرده
از for xml path برای کنار هم قراردادن این رشته ها استفاده کردم . اما چطور می تونم مشخص کنم که عضو1 در چه رشته هایی هست؟