Столбец [A] может быть любым значением, но если оно превышает 55, его необходимо разбить, чтобы ни одна строка не имела значения столбца [A], превышающего 55, и чтобы ни одно из значений не было потеряно.
Как можно достичь этой цели в SQL?
Пройдя некоторое время в поисках и пробуя разные вещи, я теряюсь.Я в основном разработчик C # и никогда не пытался сделать этот уровень логики в SQL.
select '01' as id, 65 as cnt into #temptbl
insert into #temptbl values
('02',100),
('03',200),
('04',45)
insert into #temptbl
select id, cnt - 55 from #temptbl where cnt > 55
update #temptbl set cnt = 55 where cnt > 55
select * from #temptbl order by id
select id, sum(cnt) as newCnt from #temptbl group by id
drop table #temptbl
Допустим, у меня есть строка, в которой значение столбца [A] равно 200. Максимальное значение столбца[A] должно быть 55. Мне нужно разбить этот ряд на 4 ряда.3 строки будут иметь столбец [A] со значением 55, а последняя строка будет иметь столбец [A] со значением 35.