以下代码部分为几条记录返回多个列。T-SQL获取重复的行返回
SELECT a.ClientID,ltrim(rtrim(c.FirstName)) + ' ' +
case when c.MiddleName <> '' then
ltrim(rtrim(c.MiddleName)) + '. '
else ''
end +
ltrim(rtrim(c.LastName)) as ClientName, a.MISCode, b.Address, b.City, dbo.ClientGetEnrolledPrograms(CONVERT(int,a.ClientID)) as Abbreviation
FROM ClientDetail a
JOIN Address b on(a.PersonID = b.PersonID)
JOIN Person c on(a.PersonID = c.PersonID)
LEFT JOIN ProgramEnrollments d on(d.ClientID = a.ClientID and d.Status = 'Enrolled' and d.HistoricalPKID is null)
LEFT JOIN Program e on(d.ProgramID = e.ProgramID and e.HistoricalPKID is null)
WHERE a.MichiganWorksData=1
我已经分离出的问题向ProgramEnrollments表。 该表保存一对多关系,其中每个ClientID都可以注册到许多程序中。因此,对于客户注册的每个程序,表中都有记录。
因此,最终结果集基于这些连接为ProgramEnrollments表中的每一行返回一行。
我认为我的加入是问题,但我没有看到问题。
想法/建议?
感谢,
查
你说得对。我只是意识到,我不再需要这些表中的任何一个,因为我在函数中处理它们。 谢谢 – cBlaine 2010-06-11 15:16:06