次の結果を生成するクエリがあります
NAME WeekPattern
John Smith
John Smith //
John Smith OO
Jack Jones
Jack Jones O
Jack Jones //
結果が次のように表示されるように、WeekPattern 列を連結する方法はありますか。
NAME WeekPattern
John Smith // OO
Jack Jones O //
FOR XML PATH を使用してみましたが、機能しませんでした。これが私の試みのクエリです。
SELECT
p.p_surname,
p.p_forenames,
LEFT(sr.sr_weekpattern , LEN(sr.sr_weekpattern )-1) AS Weekpattern
FROM
unitesnapshot.dbo.capd_studentregister sr
INNER JOIN unitesnapshot.dbo.capd_person p ON p.p_id = sr.sr_student
CROSS APPLY
(
SELECT sr.sr_weekpattern + ' '
FROM unitesnapshot.dbo.capd_studentregister sr1
INNER JOIN unitesnapshot.dbo.capd_person p1 ON p1.p_id = sr1.sr_student
WHERE p.p_id = p1.p_id
FOR XML PATH('')
) pre_trimmed (Weekpattern)
GROUP BY p.p_surname, p.p_forenames, sr.sr_weekpattern;
このクエリを実行すると、次のエラーが発生します。
LEFT または SUBSTRING 関数に無効な長さパラメーターが渡されました。
どんな助けでも大歓迎です