Usage GROUP BY:
, (x y), , (FirstCol LastCol) GROUP BY
SQL Fiddle
WITH Cte AS(
SELECT *,
FirstCol = CASE WHEN x <= y THEN x ELSE y END,
LastCol = CASE WHEN x <= y THEN y ELSE x END
FROM tbl
)
SELECT
Manager,
x = FirstCol,
y = LastCol,
Measure = SUM(Measure)
FROM Cte
GROUP BY Manager, FirstCol, LastCol
| Manager | x | y | Measure |
|---------|-------|--------|---------|
| A | Left | Right | 1 |
| A | Left2 | Right2 | 3 |
: , xy ( ). , Measure:
SQL Fiddle
WITH Cte AS(
SELECT
Manager,
x,
y,
RN = ROW_NUMBER() OVER(
PARTITION BY
Manager,
CASE WHEN x <= y THEN x ELSE y END,
CASE WHEN x <= y THEN y ELSE x END
ORDER BY
Measure DESC
),
Measure = SUM(Measure) OVER(
PARTITION BY
Manager,
CASE WHEN x <= y THEN x ELSE y END,
CASE WHEN x <= y THEN y ELSE x END
)
FROM tbl
)
SELECT
Manager, x, y, Measure
FROM Cte
WHERE Rn = 1