How about this? It uses a UDF to make it work, but maybe someone can convert it to be a single statement. I could not make it work as a single statement.CREATE TABLE Fields ( [FieldID] [int] NOT NULL , [Category] [varchar] (20) NOT NULL, [FieldName] [varchar] (20) NOT NULL ,)goCREATE TABLE FieldStates ( [FieldID] [int] NOT NULL , [State] [varchar] (2) NOT NULL )goINSERT INTO Fields VALUES (1,'Cat1','Name1')goINSERT INTO Fields VALUES (2,'Cat1','Name2')goINSERT INTO Fields VALUES (3,'Cat2','Name3')goINSERT INTO FieldStates VALUES (1,'WA')goINSERT INTO FieldStates VALUES (1,'OR')goINSERT INTO FieldStates VALUES (1,'ID')goINSERT INTO FieldStates VALUES (2,'WA')goINSERT INTO FieldStates VALUES (2,'OR')goINSERT INTO FieldStates VALUES (3,'ID')goCREATE FUNCTION [dbo].[tempudf_StateList] (@FieldID INT) RETURNS VARCHAR(100) AS BEGIN DECLARE @StateList VARCHAR(100) SELECT @StateList = COALESCE(@StateList + ', ', '') + State FROM Fields f INNER JOIN FieldStates fs ON fs.FieldID = f.FieldID WHERE f.FieldID = @FieldID GROUP BY f.FieldID, f.Category, f.FieldName, fs.State ORDER BY fs.State RETURN @StateListENDGoSELECT f.Category, f.FieldName, dbo.tempudf_StateList(f.FieldID)FROM Fields fINNER JOIN FieldStates fs ON fs.FieldID = f.FieldIDGROUP BY f.FieldID, f.Category, f.FieldNameGODROP FUNCTION [dbo].[tempudf_StateList]DROP TABLE FieldStatesDROP TABLE Fields
Michael<Yoda>Use the Search page you must. Find the answer you will.</Yoda>