• to try and help out...I'll throw the following code into the conversation

    it may or may not be appropriate...but hopefully OP will reply with some code that helps us understand.

    USE [TEMPDB] -- safe place

    GO

    -- go and create some test data to play with

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Location]') AND type in (N'U'))

    DROP TABLE [dbo].[Location]

    GO

    CREATE TABLE [dbo].[Location](

    [LocationID] [varchar](1) NULL

    ) ON [PRIMARY]

    GO

    INSERT INTO [dbo].[Location]([LocationID])

    SELECT N'A' UNION ALL

    SELECT N'B' UNION ALL

    SELECT N'C' UNION ALL

    SELECT N'D' UNION ALL

    SELECT N'E'

    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Trips]') AND type in (N'U'))

    DROP TABLE [dbo].[Trips]

    GO

    CREATE TABLE [dbo].[Trips](

    [Origin] [varchar](1) NULL,

    [Destnation] [varchar](1) NULL,

    [Tonnage] [int] NULL

    ) ON [PRIMARY]

    GO

    INSERT INTO [dbo].[Trips]([Origin], [Destnation], [Tonnage])

    SELECT N'A', N'B', 5 UNION ALL

    SELECT N'A', N'D', 2 UNION ALL

    SELECT N'B', N'A', 3 UNION ALL

    SELECT N'B', N'E', 7 UNION ALL

    SELECT N'B', N'A', 5 UNION ALL

    SELECT N'B', N'D', 2 UNION ALL

    SELECT N'C', N'A', 1 UNION ALL

    SELECT N'C', N'A', 18 UNION ALL

    SELECT N'D', N'C', 12 UNION ALL

    SELECT N'D', N'A', 5 UNION ALL

    SELECT N'D', N'E', 6 UNION ALL

    SELECT N'A', N'B', 12 UNION ALL

    SELECT N'D', N'C', 30 UNION ALL

    SELECT N'E', N'D', 100 UNION ALL

    SELECT N'D', N'E', 50 UNION ALL

    SELECT N'E', N'C', 12 UNION ALL

    SELECT N'E', N'A', 15

    --do some work to start playing with

    ;WITH cte AS

    (

    SELECT A.LocationID AS Origin ,

    B.LocationID AS Destination

    FROM

    Location A INNER JOIN Location B ON A.LocationID <> B.LocationID

    )

    SELECT CTE.Origin, CTE.Destination, SUM(COALESCE (Trips.Tonnage, 0)) AS TOTALS

    FROM CTE LEFT OUTER JOIN

    Trips ON CTE.Destination = Trips.Destnation AND CTE.Origin = Trips.Origin

    GROUP BY CTE.Origin, CTE.Destination

    HAVING (SUM(COALESCE (Trips.Tonnage, 0)) > 0)

    ORDER BY CTE.Origin, CTE.Destination

    edit to exclude zero tonnage trips

    ________________________________________________________________
    you can lead a user to data....but you cannot make them think
    and remember....every day is a school day