Добрый день небольшой вопрос

Alxndr
Дата: 13.02.2010 14:11:19
Всем привет
Не подскажите возможно ли просуммировать и каким образом по несколько полей одной записи и результат положить в итоговое результирующее поле этой же записи?
Извиняюсь за дилетантский вопрос с БД пока на Вы.
Заранее спасибо
Knyazev Alexey
Дата: 13.02.2010 14:16:49
iap
Дата: 13.02.2010 15:48:30
Knyazev Alexey,

речь идёт о суммировании в пределах одной записи. Нарастающий итог вроде бы не при чём
SET NOCOUNT ON;
SQL2008 (только из-за VALUES(),(),... - в предыдущих версиях можно заменить на UNION ALL)
USE tempdb;

IF OBJECT_ID(N'T','U') IS NOT NULL DROP TABLE T;
CREATE TABLE T(Field1 INT,Field2 INT,Field3 INT,Field4 INT,Field5 INT,Total INT NULL);
INSERT T(Field1,Field2,Field3,Field4,Field5)VALUES(3,-7,33,1,10);

UPDATE T
SET Total=(SELECT SUM(F) FROM(VALUES(Field1),(Field2),(Field3),(Field4),(Field5))R(F));
iap
Дата: 13.02.2010 15:51:30
Что-то в преыдущем моём сообщении SET NOCOUNT ON; выпал из тегов.
Но, впрочем, это там только для красоты вывода...
Alxndr
Дата: 13.02.2010 15:51:58
iap,
Благодарю за ответ, а не подскажите Null значения поля в этом случае как заменить такое подойдет If (IsNull[Январь]) [Январь]=0
iap
Дата: 13.02.2010 15:54:15
Можно и "в лоб"
SET NOCOUNT ON;
USE tempdb;

IF OBJECT_ID(N'T','U') IS NOT NULL DROP TABLE T;
CREATE TABLE T(Field1 INT,Field2 INT,Field3 INT,Field4 INT,Field5 INT,Total INT);
INSERT T(Field1,Field2,Field3,Field4,Field5)VALUES(3,-7,33,1,10);

UPDATE T
SET Total=ISNULL(Field1,0)+ISNULL(Field2,0)+ISNULL(Field3,0)+ISNULL(Field4,0)+ISNULL(Field5,0);

SELECT * FROM T;
Alxndr
Дата: 13.02.2010 15:56:30
iap,
Спасибо за помощь
iap
Дата: 13.02.2010 15:56:31
Alxndr
iap,
Благодарю за ответ, а не подскажите Null значения поля в этом случае как заменить такое подойдет If (IsNull[Январь]) [Январь]=0
Что-то не понял. при чё тут Январь?
Давайте-ка, как положено, напишите здесь скрипт создания таблицы (CREATE TABLE)
и заполнения её тестовыми данными (INSERT ...)
iap
Дата: 13.02.2010 15:57:44
iap
Alxndr
iap,
Благодарю за ответ, а не подскажите Null значения поля в этом случае как заменить такое подойдет If (IsNull[Январь]) [Январь]=0
Что-то не понял. при чё тут Январь?
Давайте-ка, как положено, напишите здесь скрипт создания таблицы (CREATE TABLE)
и заполнения её тестовыми данными (INSERT ...)
И версию сервера огласите
Alxndr
Дата: 15.02.2010 09:16:26
iap,
еще раз благодарю помогло, [Январь] это имя поля