Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 как сложить отдельные строки?  [new]
Lady.36
Member

Откуда:
Сообщений: 5
Подскажите пожалуйста как мне сложить отдельные строки и вывести эти значения если используется курсор

Нужно посчитать Итого БК, Итого по произ-ву №1,Итого по произ-ву №2, Итого по произ-ву №3...и т.д.

insert @temp_table (plant, server, stagname) values ('ц.1300 (P-8/6,БК-9)', 'ASODU-NKNH','')
insert @temp_table (plant, server, stagname) values ('ц.1306', 'ASODU-INSQL', 'NK_1306_PC_F_SPD')
insert @temp_table (plant, server, stagname) values ('ц.1307', 'ASODU-INSQL', 'NK_1307_PC_F_SPD')
insert @temp_table (plant, server, stagname) values ('ц.1311', 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ( 'ц.1317', 'ASODU-INSQL','-')
insert @temp_table (plant, server, stagname) values ('Итого БК', 'SUMMA', '')

insert @temp_table (plant, server, stagname) values ('3а', 1, 'Производство №1', 0 ,'','' )
insert @temp_table (plant, server, stagname) values ('3б', 0, 'ц.1417(ЦГФУ-1)', 0 , 'ASODU-INSQL', 'NK_1417-1_F_512_SPD')
insert @temp_table (plant, server, stagname) values ('3в', 0, 'ц.1417(ЦГФУ-2)', 0 , 'ASODU-INSQL', 'NK_1417-2_F_546_SPD')
insert @temp_table (plant, server, stagname) values ('3г', 0, 'ц.1419', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('3д', 0, 'ц.1429(ИП-7)', 0, 'ASODU-INSQL', 'NK_1420_IP-7_F_553_SPD')
insert @temp_table (plant, server, stagname) values ('3е', 0, 'ц.1429(ИП-11)', 0, 'ASODU-INSQL', '')
insert @temp_table (plant, server, stagname) values ('3ж', 0, 'ц.1429(И-7)', 0, 'ASODU-INSQL', 'NK_1428_I-7_F_534_SPD')
insert @temp_table (plant, server, stagname) values ('3з', 0, 'ц.1429(И-11)', 0, 'ASODU-INSQL', '')
insert @temp_table (plant, server, stagname) values ('4', 1, 'Итого по произ-ву №1', 0, 'SUMMA', '')
insert @temp_table (plant, server, stagname) values ('5', 1, 'Производство №2', 0,'','' )
insert @temp_table (plant, server, stagname) values ('5а', 0, 'ц.1421(Р-24)', 0, 'ASODU-INSQL', 'NK_1421_P-24_F_542_SPD')
insert @temp_table (plant, server, stagname) values ('5б', 0, 'ц.1421(Т-8)', 0, 'ASODU-INSQL', 'NK_1421_T-8_F_562_SPD')
insert @temp_table (plant, server, stagname) values ('5в', 0, 'ц.1421', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('5г', 0, 'ц.1422', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('5д', 0, 'ц.1423', 0, 'ASODU-INSQL','-')
insert @temp_table (plant, server, stagname) values ('5е', 0, 'ц.1424', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('5ж', 0, 'ц.1425', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('6', 1, 'Итого по произ-ву №2', 0, 'SUMMA', '')
insert @temp_table (plant, server, stagname) values ('7', 1, 'Производство №3', 0,'','' )
insert @temp_table (plant, server, stagname) values ('7а', 0, 'ц.1430(ДБ-6)', 0, 'ASODU-INSQL', 'NK_1408_DB-6_F_505-2_SPD')
insert @temp_table (plant, server, stagname) values ('7б', 0, 'ц.1430(ДП-4/5)', 0, 'ASODU-INSQL', 'NK_1430_PC_F_SPD')
insert @temp_table (plant, server, stagname) values ('7в', 0, 'ц.1415',0 , 'ASODU-INSQL', 'NK_1415_PC_F_SPD')
insert @temp_table (plant, server, stagname) values ('8', 1, 'Итого по произ-ву №3 ', 0, 'SUMMA', '')
insert @temp_table (plant, server, stagname) values ('9', 1, 'Итого по ДБиУВС ', 0, 'SUMMA',)

declare @server nvarchar(16), @stagname nvarchar(256)

DECLARE t_cursor CURSOR FOR
SELECT server, stagname FROM @temp_table

OPEN t_cursor

FETCH NEXT FROM t_cursor
INTO @server, @stagname

WHILE @@FETCH_STATUS = 0
BEGIN

if @server = 'ASODU-INSQL' begin
select @svalue = Value from History
where TagName = @stagname
and wwRetrievalMode = 'Cyclic'
and wwResolution = 86400000
and datetime >= dateadd(hh, 25, @date) and datetime <= dateadd(hh, 25, @date)
end

update @temp_table set svalue = @svalue from @temp_table where current of t_cursor


FETCH NEXT FROM t_cursor
INTO @server, @stagname
END

CLOSE t_cursor
DEALLOCATE t_cursor
3 сен 09, 16:06    [7613901]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Lady.36,
1)всё-таки опишите задачу словами
2)insert @temp_table (plant, server, stagname) values ('8', 1, 'Итого по произ-ву №3 ', 0, 'SUMMA', '') и пр.: а ничего, что кол-во полей в валуес отличается от?
3) select @svalue = group_concat(Value) from History, нет?
3 сен 09, 18:28    [7615101]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Lady.36
Member

Откуда:
Сообщений: 5
tanglir, итого надо посчитать, а про эти ошибки я знаю....как мне посчитать не все строки сразу, а отдельные? вот в этом у меня загвостка)
4 сен 09, 08:18    [7616037]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Anatoly_Zaitsev
Member

Откуда: Россия, Самара
Сообщений: 386
Lady.36,
select plant,COUNT(server),sum(server) from @temp_table
group by plant
извините, не очень понял структуру вашей таблицы, филды запросе поменете если написал не правильно.

p.s. А вы уверены что эта таблица живая? ошибок как то многовато =)
4 сен 09, 10:31    [7616588]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Хрен
Member

Откуда: Brisbane
Сообщений: 1455
Lady.36, Дайте догадаюсь - у вас MSSQL, правильно? не MySQL. Вы форумом ошиблись.
Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 4 сен 09, 11:20
4 сен 09, 10:43    [7616685]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а что считать то надо ???? в каком поле содержиться то что надо посчитать ????
-------------------------------------
Jedem Das Seine
4 сен 09, 11:36    [7617077]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Lady.36
Member

Откуда:
Сообщений: 5
Итого БК считается по вышеперечисленным полям, т.е. ц.1300+ц1306+1307+1311+1317
Итого по произ-ву №1 аналагично по вышеперечисленным полям исключая Итого БК. и т.д.
4 сен 09, 13:57    [7618201]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Lady.36
Member

Откуда:
Сообщений: 5
может пример кто-нидь пришлёт как считаются отдельные строки
4 сен 09, 13:58    [7618221]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Lady.36
ц.1300+ц1306
А сколько будет ц.1300 прибавить ц1306 ?
4 сен 09, 13:59    [7618232]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
непонял.... т.е. надо выкусить цифры из строки ? или что ???

insert @temp_table (plant, server, stagname) values ('ц.1300 (P-8/6,БК-9)', 'ASODU-NKNH','')
insert @temp_table (plant, server, stagname) values ('ц.1306', 'ASODU-INSQL', 'NK_1306_PC_F_SPD')
insert @temp_table (plant, server, stagname) values ('ц.1307', 'ASODU-INSQL', 'NK_1307_PC_F_SPD')
insert @temp_table (plant, server, stagname) values ('ц.1311', 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ( 'ц.1317', 'ASODU-INSQL','-')
insert @temp_table (plant, server, stagname) values ('Итого БК', 'SUMMA', '')

Для етого куска какой будет результат ? который хотите видеть вы ?
-------------------------------------
Jedem Das Seine
4 сен 09, 14:00    [7618239]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
неужели результат должен быть такой
'ц.1300 (P-8/6,БК-9)ц.1306ц.1307ц.1311ц.1311Итого БК'
?
-------------------------------------
Jedem Das Seine
4 сен 09, 14:09    [7618318]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Паганель
Lady.36
ц.1300+ц1306
А сколько будет ц.1300 прибавить ц1306 ?

я пологаю 2ц1606 :))
4 сен 09, 14:12    [7618343]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
zenik
Member

Откуда:
Сообщений: 100
Что то мне подсказывает, что можно без курсора:
GROUP BY ... WITH ROLLUP
4 сен 09, 14:25    [7618475]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Anatoly_Zaitsev
Member

Откуда: Россия, Самара
Сообщений: 386
к стати еще и филды пропущены, в этом куске столбцов больше
insert @temp_table (plant, server, stagname) values ('5в', 0, 'ц.1421', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('5г', 0, 'ц.1422', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('5д', 0, 'ц.1423', 0, 'ASODU-INSQL','-')
insert @temp_table (plant, server, stagname) values ('5е', 0, 'ц.1424', 0, 'ASODU-INSQL', '-')
insert @temp_table (plant, server, stagname) values ('5ж', 0, 'ц.1425', 0, 'ASODU-INSQL', '-')
мне кажется она server считает, там больше всего цифр =))))
4 сен 09, 14:31    [7618559]     Ответить | Цитировать Сообщить модератору
 Re: как сложить отдельные строки?  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
угу,и все равно ответа что надо в конце -нет
-------------------------------------
Jedem Das Seine
4 сен 09, 14:32    [7618574]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить