Вы можете объединить три таблицы вместе, чтобы создать один набор данных.Затем вы можете использовать PIVOT для транспонирования суммы в столбцы.
Это должно сработать.Хотя я не проверял его на каких-либо данных.
SELECT
[Tleave_sick_leave],
[Tleave_other_leave],
[Tleave_vleave]
FROM
(
SELECT
'Tleave_sick_leave' [Table],
[staff_key],
[days_applied],
[from_date],
[to_date]
FROM
[Tleave_sick_leave]
UNION ALL
SELECT
'Tleave_other_leave' [Table],
[staff_key],
[days_applied],
[from_date],
[to_date]
FROM
[Tleave_other_leave]
UNION ALL
SELECT
'Tleave_vleave' [Table],
[staff_key],
[days_applied],
[from_date],
[to_date]
FROM
[Tleave_vleave]
) [PivotData]
PIVOT
(
SUM([days_applied])
FOR
[Table]
IN
(
[Tleave_sick_leave],
[Tleave_other_leave],
[Tleave_vleave]
)
) [Data]
WHERE
[staff_key] = 131
AND
[from_date] >= '2011/4/1 00:00:00'
AND
[to_date] <= '2011/4/30 00:00:00'
ПРИМЕЧАНИЕ.Если у вас 2000 или ниже, вам нужно будет ответить Ливеном, который фактически делает то же самое.