Code Snippet
SET NOCOUNT ON
DECLARE @Report_Groups table
( Rpg_SortOrder int,
Rpg_GroupName varchar(20),
Rpg_GroupCode char(2)
)
INSERT INTO @Report_Groups VALUES ( 2, 'debit cards', 'db' )
INSERT INTO @Report_Groups VALUES ( 3, 'discover', 'ds' )
INSERT INTO @Report_Groups VALUES ( 4, 'visa', 'vs' )
INSERT INTO @Report_Groups VALUES ( 8, 'food stamps', 'ef' )
INSERT INTO @Report_Groups VALUES ( 10, 'gift cards', 'gc' )
INSERT INTO @Report_Groups VALUES ( 14, 'fleet cards', 'wx' )
INSERT INTO @Report_Groups VALUES ( 15, 'fleet cards', 'mf' )
INSERT INTO @Report_Groups VALUES ( 16, 'fleet cards', 'vy' )
INSERT INTO @Report_Groups VALUES ( 18, 'ach', 'ac' )
DECLARE @Actlog table
( Act_CardProcID char(2),
Act_TrxAmtn decimal(10,2)
)
INSERT INTO @ActLog VALUES ( 'db', 25.00 )
INSERT INTO @ActLog VALUES ( 'db', 25.00 )
INSERT INTO @ActLog VALUES ( 'vs', 100.00 )
INSERT INTO @ActLog VALUES ( 'vs', 200.00 )
SELECT
SortOrder = min( r.Rpg_SortOrder ),
GroupName = r.Rpg_GroupName,
CardProdID = min( a.Act_CardProcID ),
Amount = sum( a.Act_TrxAmtn )
FROM @Report_Groups r
LEFT JOIN @ActLog a
ON r.Rpg_GroupCode = a.Act_CardProcID
GROUP BY r.Rpg_GroupName
ORDER BY SortOrder
SortOrder GroupName CardProdID Amount
----------- -------------------- ---------- ---------------------
2 debit cards db 50.00
3 discover NULL NULL
4 visa vs 300.00
8 food stamps NULL NULL
10 gift cards NULL NULL
14 fleet cards NULL NULL
18 ach NULL NULL