powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Просуммировать
2 сообщений из 2, страница 1 из 1
Просуммировать
    #32022585
Alexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа.Как просуммировать данные по всем полям.Т.е.,чтобы запрос возвращал строку сумм по полям.(Подразумеваю,что в тэйбле-все данные типа инт или флоут) Если можно - на мыло:
gumbert_gumbert@ukr.net
...
Рейтинг: 0 / 0
Просуммировать
    #32022624
Фотография Александр Степанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данная процедура сама разберется, какие из полей числовые.

create table abc
(
pk int identity(1,1) not null,
a int not null,
b int not null,
c float not null,
d varchar(10) not null
)
go

insert into abc (a,b,c,d) values (1,2,3.5,'asdf')
insert into abc (a,b,c,d) values (3,7,4.526,'qwer')
insert into abc (a,b,c,d) values (8,23,8.7564,'rtyu')
go

create procedure SumNums
@tablename sysname
as

DECLARE @SQL nvarchar(4000)
Set @SQL='Select '''+@tablename+''' As TABLENAME'

DECLARE @S nvarchar(12

DECLARE a CURSOR LOCAL FORWARD_ONLY FOR
Select
COLUMN_NAME
From
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME=@tablename AND
DATA_TYPE in
(
'bigint',
'decimal',
'float',
'int',
'money',
'numeric',
'real',
'tinyint'
)
ORDER BY
ORDINAL_POSITION

open a

fetch next from a into @s

while @@fetch_Status=0
BEGIN
Set @SQL=@SQL+', SUM('+@s+') As '+@s
fetch next from a into @s
END

Set @SQL=@SQL+' from '+@tablename

exec(@SQL)

close a

deallocate a
go

exec SumNums @tablename='abc'
go

drop procedure SumNums
go

drop table abc
go
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Просуммировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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