我创造了一个怪物,但它有效。
它是 mysql,但我确信它很容易转换为 tsql
select sum(mon)
, sum(tue)
, sum(wed)
, sum(thur)
, sum(fri)
from (
select person
, if (1 < field(day, 'mon', 'tue', 'wed', 'thur', 'fri'), 0, val / pow(2, 1 - field(day, 'mon', 'tue', 'wed', 'thur', 'fri'))) as mon
, if (2 < field(day, 'mon', 'tue', 'wed', 'thur', 'fri'), 0, val / pow(2, 2 - field(day, 'mon', 'tue', 'wed', 'thur', 'fri'))) as tue
, if (3 < field(day, 'mon', 'tue', 'wed', 'thur', 'fri'), 0, val / pow(2, 3 - field(day, 'mon', 'tue', 'wed', 'thur', 'fri'))) as wed
, if (4 < field(day, 'mon', 'tue', 'wed', 'thur', 'fri'), 0, val / pow(2, 4 - field(day, 'mon', 'tue', 'wed', 'thur', 'fri'))) as thur
, if (5 < field(day, 'mon', 'tue', 'wed', 'thur', 'fri'), 0, val / pow(2, 5 - field(day, 'mon', 'tue', 'wed', 'thur', 'fri'))) as fri
from (
(select 'bill' as person, 'mon' as day, 4 as val from dual)
union
(select 'jane', 'wed', 2 from dual)
union
(select 'mary', 'tue', 8 from dual)
) t
) tbl
http://sqlfiddle.com/#!2/d41d8/5249