Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2000 Forums
 Transact-SQL (2000)
 Help with Query.

Author  Topic 

ScAndal
Starting Member

8 Posts

Posted - 2002-08-26 : 12:31:23
Here is an image of my problem:

http://www.sfasource.com/stuff/relationship.gif

summary of problem:
The following query will return two rows if there are 2 phone records for a client. I only want top 1 from phone.

SELECT gminfo.*, gmin_phone.phone
FROM gminfo INNER JOIN
gmin_phone ON gminfo.recordid = gmin_phone.recordid

Thanks in advance for any help you can give me.

Kevin

MichaelP
Jedi Yak

2489 Posts

Posted - 2002-08-26 : 12:42:47
Here's one way, not sure if it's the best way. I put the create table stuff in there just so you can see how it works. You will only need that select statement atthe bottom, and do some slight modification to it.

 
create table #gminfo(RecordId INT, greeting varchar(50))
Create table #gmin_phone(RecordId INT, Phone varchar(50))

INSERT INTO #gminfo(RecordId, greeting) VALUES(1, 'Hello 1')
INSERT INTO #gminfo(RecordId, greeting) VALUES(2, 'Hello 2')
INSERT INTO #gminfo(RecordId, greeting) VALUES(3, 'Hello 3')
INSERT INTO #gminfo(RecordId, greeting) VALUES(4, 'Hello 4')
INSERT INTO #gminfo(RecordId, greeting) VALUES(5, 'Hello 5')

INSERT INTO #gmin_phone(RecordId, Phone) VALUES(1, '111111111')
INSERT INTO #gmin_phone(RecordId, Phone) VALUES(1, '111111112')
INSERT INTO #gmin_phone(RecordId, Phone) VALUES(1, '111111113')

INSERT INTO #gmin_phone(RecordId, Phone) VALUES(2, '222222221')
INSERT INTO #gmin_phone(RecordId, Phone) VALUES(2, '222222222')
INSERT INTO #gmin_phone(RecordId, Phone) VALUES(2, '222222223')

INSERT INTO #gmin_phone(RecordId, Phone) VALUES(3, '333333331')
INSERT INTO #gmin_phone(RecordId, Phone) VALUES(4, '444444441')
INSERT INTO #gmin_phone(RecordId, Phone) VALUES(5, '555555551')

SELECT info.*, (SELECT TOP 1 phone.phone FROM #gmin_phone phone WHERE phone.RecordId = info.RecordId)
FROM #gminfo info



Michael

<Yoda>Use the Search page you must. Find the answer you will.</Yoda>
Go to Top of Page

LarsG
Constraint Violating Yak Guru

284 Posts

Posted - 2002-08-26 : 12:48:18
SELECT gminfo.* ,
(select min(gmin_phone)
from gmin_phone
where record_id = gm.recordid ) as gmin_phone
FROM gminfo gm

Go to Top of Page

ScAndal
Starting Member

8 Posts

Posted - 2002-08-26 : 12:53:09
MichaelP,
Thats IT!!!!!

Thank you! Thank you! Thank you!

ScAndal

Go to Top of Page
   

- Advertisement -