La section de code suivante renvoie plusieurs colonnes pour quelques enregistrements.T-SQL Retour des lignes dupliquées
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
J'ai isolé la question à la table ProgramEnrollments. Cette table contient des relations un-à-plusieurs dans lesquelles chaque ID client peut être inscrit dans plusieurs programmes. Ainsi, pour chaque programme auquel un client est inscrit, il y a un enregistrement dans le tableau. L'ensemble de résultats final renvoie donc une ligne pour chaque ligne de la table ProgramEnrollments en fonction de ces jointures.
Je suppose que ma jointure est le problème mais je ne vois pas le problème.
Réflexions/Suggestions?
Merci,
Chuck
Vous avez raison. Je viens de réaliser que je n'ai plus besoin de ces tables car je les manipule dans la fonction. Merci – cBlaine