This is a discussion on SQL to combine columns within the SQL Server forums, part of the Microsoft SQL Server category; --> On Mar 9, 8:43 am, "Steve London" <sylon...@optonline.net> wrote: > I'm sure this has been brought up many times, ...
| |||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| On Mar 9, 8:43 am, "Steve London" <sylon...@optonline.net> wrote: > I'm sure this has been brought up many times, but I will ask anyway. > > Let's say I have 2 tables related: > > Owner: > --------- > o_id > o_name > > Dog: > --------- > d_id > d_name > o_id - for Owner table. > > If the data is laid out as > > o_id o_name > 1 John > > d_id d_name o_id > 1 Skippy 1 > 2 Fido 1 > > How can I make a query that will produce the following results: > > o_id o_name owned dog names > 1 John Skippy, Fido > > I think it has something to do with unions but I can't seem to get it. I'm > using SQL Server Compact Edition. CREATE TABLE Owners -- plural if you have more than one (owner_id int NOT NULL PRIMARY KEY, owner_name varCHAR(20) NOT NULL); CREATE TABLE Dogs -- plural if you have more than one (dog_id int NOT NULL PRIMARY KEY, dog_name varCHAR(20) NOT NULL, dog_owner_id int ); insert into Owners (owner_id,owner_name) values(1,'John') insert into Dogs (dog_id,dog_name,dog_owner_id) values(1,'Skippy',1) insert into Dogs (dog_id,dog_name,dog_owner_id) values(2,'Fiddo',1) declare @s varchar(100) select @s = coalesce(@s +', ','') + d.dog_name from dogs d inner join owners o on d.dog_owner_id = o.owner_id where o.owner_id = 1; select owner_id, owner_name, @s from owners where owner_id = 1 |