powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сложение двух строчкк
9 сообщений из 9, страница 1 из 1
Сложение двух строчкк
    #39564586
potok21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!
Есть таблица со следующими столбцами:
ID, TimeBegin, TimeCancel, StatValue
1 00:00 00:30 100
2 00:30 01:00 50
3 01:00 01:30 60
4 01:30 02:00 50
5 02:30 03:00 45
6 03:30 04:00 52
и так далее...
То есть здесь получасовки в столбцах TimeBegin и TimeCanel и значения в StatValue
Мне нужно сложить значение слобца StatValue так чтобы получились часовые значения, то есть сумма 1 и второй строчек, затем 3 и 4 так далее..
Подскажите какой код надо написать на T-SQL или на LINQ. Заранее спасибо!
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564597
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия сервера?
Записей количество четное всегда?
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564600
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potok21,

Код: sql
1.
2.
3.
4.
5.
6.
select t1.TimeBegin, 
isnull(t2.TimeCancel,  t1.TimeCancel) TimeCancel, 
t1.StatValue + isnull(t2.StatValue, 0) StatValue 
from t t1
left join t t2 on t1.id + 1 = t2.id
where t1.id % 2 = 1



как-то так.
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564604
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
declare @t table(id int identity(1,1),Statvalue int)
insert into @t values(100),(60),(50),(42),(52)

select sum(statvalue) from @t group by (id-1)/2 

select t1.Statvalue+isnull(t2.statvalue,0)
from @t t1 left join @t t2 ON t1.id=t2.id-1 
where t1.id%2=1

select * 
from 
(
select t1.id, t1.Statvalue + LEAD(statvalue,1,0)OVER(ORDER BY id) as s 
from @t t1 
)T
where T.id%2=1
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564606
potok21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

2008 R2, количество записей всегда четное - по 48 позиций. Спасибо за код, буду пробовать!
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564626
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ежели количество строк всегда 48, то базовый NTILE то что тебе надо!

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
DECLARE @Values TABLE (ID int ,  TimeBegin time , TimeCancel time, StatValue int)  

INSERT INTO @Values SELECT 1, '00:00', '00:30', 100
INSERT INTO @Values SELECT 2, '00:30', '01:00', 50
INSERT INTO @Values SELECT 3, '01:00', '01:30', 60
INSERT INTO @Values SELECT 4, '01:30', '02:00', 50
INSERT INTO @Values SELECT 5, '02:30', '03:00', 45
INSERT INTO @Values SELECT 6, '03:30', '04:00', 52 

SELECT 
 TheSum = SUM(StatValue)    
FROM(
SELECT 

  Grp = NTILE(3) OVER (ORDER BY ID ) 
, V.ID
, V.TimeBEgin 
, V.TimeCancel
, V.StatValue
FROM @Values V

) Z 
GROUP BY Z.Grp 
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564687
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК, тут нужна простая группировка по часу начала...
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT 
  [Time] = DATEADD( MINUTE, DATEPART( MINUTE, TimeBegin ), TimeBegin ),
  [Stat] = SUM( StatValue )
FROM
  @Values v
GROUP BY
  DATEADD( MINUTE, DATEPART( MINUTE, TimeBegin ), TimeBegin )
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564698
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руслан Дамирович,

нет, у него разрыв
----
3 01:00 01:30 60
4 01:30 02:00 50
5 02:30 03:00 45
6 03:30 04:00 52
...
Рейтинг: 0 / 0
Сложение двух строчкк
    #39564700
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyama,

хотя, прошу прощения, Вы правы, в ТЗ так чтобы получились часовые значения
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сложение двух строчкк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]