TSQL - How to join 1..* from multiple tables in one resultset?

Posted by ElHaix on Stack Overflow See other posts from Stack Overflow or by ElHaix
Published on 2010-03-23T18:28:01Z Indexed on 2010/03/23 18:33 UTC
Read the original article Hit count: 309

A location table record has two address id's - mailing and business addressID that refer to an address table.

Thus, the address table will contain up to two records for a given addressID.

Given a location ID, I need an sproc to return all tbl_Location fields, and all tbl_Address fields in one resultset:

            LocationID INT,
            ClientID INT,
            LocationName NVARCHAR(50),
            LocationDescription NVARCHAR(50),
            MailingAddressID INT,
            BillingAddressID INT,
            MAddress1 NVARCHAR(255),
            MAddress2 NVARCHAR(255),
            MCity NVARCHAR(50),
            MState NVARCHAR(50),
            MZip NVARCHAR(10),
            MCountry CHAR(3),
            BAddress1 NVARCHAR(255),
            BAddress2 NVARCHAR(255),
            BCity NVARCHAR(50),
            BState NVARCHAR(50),
            BZip NVARCHAR(10),
            BCountry CHAR(3)

I've started by creating a temp table with the required fields, but am a bit stuck on how to accomplish this.

I could do sub-selects for each of the required address fields, but seems a bit messy.

I've already got a table-valued-function that accepts an address ID, and returns all fields for that ID, but not sure how to integrate it into my required result.

Off hand, it looks like 3 selects to create this table - 1: Location, 2: Mailing address, 3: Billing address.

What I'd like to do is just create a view and use that.

Any assistance would be helpful.

Thanks.

© Stack Overflow or respective owner

Related posts about tsql

Related posts about join