Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 01:37   #1
Сурка
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 32
Вопрос Внесение в поле таблицы сумму значений из другой таблицы по условию

у меня вот какая проблема...
есть две таблицы: СТАТЬЯ и ВЫПУСК (выпуск какого-то периодического издания). в таблице СТАТЬЯ есть столбец с количеством страниц в статье. и вот вопрос: как заполнить стоблец с количеством страниц в таблице ВЫПУСК, чтобы он был равен сумме страниц, которые входят в этот выпуск?
я так понимаю, что надо писать триггер.
написала:
Код:
CREATE TRIGGER Tri
        ON [Статьи_в_период_изданиях].[dbo].[СТАТЬЯ]
        FOR INSERT AS
UPDATE [Статьи_в_период_изданиях].[dbo].[ВЫПУСК]
SET p.Объем_выпуска=p.Объем_выпуска+a.Объем_статьи
FROM dbo.inserted p
        join СТАТЬЯ a
                ON p.Ун_номер_выпуска=a.Выпуск_период_издания 
INSERT INTO dbo.СТАТЬЯ
SELECT
        i.Номер_статьи, i.Название_статьи, i.Автор_статьи,
        i.Выпуск_период_издания, i.Дата_написания, i.Объем_статьи,
        i.Обл_знаний 
FROM inserted i
но что-то не то...
при добавлении записей пишет: НЕдопустимое имя объекта dbo.inserted
что уже только ни пробовала...
то суммирует все подряд страницы, то везде NULL выдает. а теперь вот это. вообще не понимаю, как исправить
заранее спасибо!
Сурка вне форума Ответить с цитированием
Старый 25.12.2011, 11:46   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. Допустим триггер вы еще тот написали, особенно умиляет Insert в таблицу СТАТЬЯ для триггера на вставку в эту же таблицу. Update тоже ни куда не годный
2. Записи из СТАТЬЯ как я понял у вас только вставляются, удаляться и редактироваться не могут. Или могут? Тогда как быть с триггерами на редактирование и удаление?
3. Зачем вообще поле Объем_выпуска нужно в ВЫПУСК, если все данные есть в дочерней таблице СТАТЬЯ. В запросах без проблем можно каждый раз этот суммарный объем подсчитывать, не имея геморроя с триггерами
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2011, 17:47   #3
Сурка
Пользователь
 
Регистрация: 07.11.2009
Сообщений: 32
По умолчанию

Аватар,
спасибо. третий пункт очень дельный))
с помощью этого совета сразу все получилось
Сурка вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
формирование таблицы из элементов другой таблицы с удалением повторяющихся значений Selicat Microsoft Office Excel 1 20.10.2011 22:36
Выбираем поле из таблицы и отображаем в другой форме xJohnx БД в Delphi 0 17.04.2011 11:27
Сумма значений таблицы условию. Drummer_SV Microsoft Office Excel 4 13.05.2009 16:24