Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/58: Рейтинг темы: голосов - 58, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 23.12.2011
Сообщений: 10

Заполнение столбца данными из другой таблицы

23.12.2011, 16:02. Показов 12032. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите, пожалуйста.
у меня, значит, такое дело...
есть две таблицы: СТАТЬЯ и ВЫПУСК (выпуск какого-то периодического издания). в таблице СТАТЬЯ есть столбец с количеством страниц в статье. и вот вопрос: как заполнить стоблец с количеством страниц в таблице ВЫПУСК, чтобы он был равен сумме страниц, которые входят в этот выпуск?
я так понимаю, что надо писать триггер. но никак не пойму, как наложить условие, что статья принадлежит данныму выпуску. я написала функцию:
T-SQL
1
2
3
4
5
6
7
CREATE FUNCTION [dbo].[Name_f]
(@NomZur integer)
RETURNS table
RETURN
SELECT Объем_статьи
FROM [Статьи_в_период_изданиях].[dbo].[СТАТЬЯ] 
WHERE Выпуск_период_издания=@NomZur
но как ее теперь использовать в триггере?
T-SQL
1
2
3
4
5
6
CREATE TRIGGER Tr_name
ON [Статьи_в_период_изданиях].[dbo].[ВЫПУСК] 
AFTER INSERT, UPDATE, DELETE
AS
[Статьи_в_период_изданиях].[dbo].[ВЫПУСК].[Объем_выпуска]  = SELECT (SUM (*результат функции*))
RETURN
или тут вообще идея не такая?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2011, 16:02
Ответы с готовыми решениями:

Триггер на заполнение столбца таблицы на основе другой
Есть две таблицы: 1. Клиенты (код клиента, ФИО, количество дел) 2.Дела клиентов (номер дела, код клиента) У клиента может быть...

Вывод значения из одного столбца таблицы в 2 столбца другой таблицы
Есть 2 таблицы. Допустим, первая таблица мед. учреждения Med ( id, name, type ) , вторая накладная Nak( id, id_med_otprav, id_med_polych)....

Автоматическое заполнение таблицы данными из другой таблицы при соблюдении определенного условия
Добрый день! Объяснить сложно, поэтому попробую на примере. По работе составляю графики проведения открытых конкурсов. Необходимо...

10
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.12.2011, 16:25
А как у вас вставляются записи в таблицу Статьи - вы знаете номер выпуска?
0
0 / 0 / 0
Регистрация: 23.12.2011
Сообщений: 10
23.12.2011, 16:30  [ТС]
pincet,
записи в таблицу СТАТЬЯ вставляются вручную. а вот в ВЫПУСКЕ надо автоматически заполнить столбец с количеством страниц.
и в СТАТЬЕ есть столбец, в котором указано, в каком выпуске находится статья
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.12.2011, 16:35
Т.е. сначала вставляется пустая запись в выпуск, получается поле id_vypusk
затем заполняется таблица Статьи с id_vypusk - и что далее?
Непонятна логика
0
0 / 0 / 0
Регистрация: 23.12.2011
Сообщений: 10
23.12.2011, 16:41  [ТС]
pincet,
при внесении новых данных в СТАТЬЮ надо пересчитать количество данных в ВЫПУСКЕ.
то есть я, например, добаляю новую статью. там указывается, в каком выпуске (журнале) она находится и сколько в ней страниц. при этом в выпуске в таблице ВЫПУСК, в котором опубликована эта статья, количество страниц, тоже должно увеличиться.
а если я удаляю какую-либо статью, то соответственно и количество страниц в выпуске уменьшится
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.12.2011, 16:54
Идея такая. Но триггер вешаем не на Выпуск, а на статью.
Далее,
SQL
1
@объем=(SELECT(SUM(статья_объем)) WHERE статья.ид_выпуск=inserted.ид_выпуск)
hint - inserted - таблица доступная только в триггере, содержит измененные записи
deleted - записи до изменения
0
0 / 0 / 0
Регистрация: 23.12.2011
Сообщений: 10
23.12.2011, 17:17  [ТС]
pincet,
ничего не поняла...
вот я решила просто пока запрос написать:
T-SQL
1
2
3
4
5
6
UPDATE [Статьи_в_период_изданиях].[dbo].[ВЫПУСК] 
SET Объем_выпуска = (
SELECT SUM (Объем_статьи) 
FROM [Статьи_в_период_изданиях].[dbo].[СТАТЬЯ], 
[Статьи_в_период_изданиях].[dbo].[ВЫПУСК] 
WHERE Ун_номер_выпуска = Выпуск_период_издания)
но в итоге получается, что суммируются все статьи, а не только те, которые находятся в нужном выпуске. и значение это присваивается всем выпускам, а не тому, в котором добавлена/удалена статья.
вот что не так?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
23.12.2011, 21:30
схему данных можете положить сюда?
0
0 / 0 / 0
Регистрация: 23.12.2011
Сообщений: 10
23.12.2011, 22:17  [ТС]
pincet,
так?
Миниатюры
Заполнение столбца данными из другой таблицы  
0
23.12.2011, 22:41

Не по теме:


до завтра потерпите?
напряжно уже размышлять....

0
23.12.2011, 23:08  [ТС]

Не по теме:


pincet ,
да, конечно. буду очень признательна:)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2011, 23:08
Помогаю со студенческими работами здесь

Заполнение таблицы данными из другой
Доброго времени суток. Нужна помощь!! В базе - две таблицы "Оборот_логгеров" и "Номер_Логгера" В первой...

Автоматическое заполнение таблицы данными из другой таблицы
Добрый день. Возникла проблема с Экселем. Требуется на листе Production автоматически вставить данные из листа Materials. На листе...

Заполнение одной таблицы данными из другой
Прошу помощи, не могу сообразить как написать небольшой скрипт, если кто может опишите в общих чертах. Ситуация такая, есть две таблицы БД...

Заполнение таблицы данными из другой таблицы
Нужно сделать запрос на заполнение пустой колонки в таблице1 из таблицы2, есть общее поле . Один из вариантов, пробовал через update...

Автоматическое заполнение данными из другой таблицы Access
Здравствуйте, что-то я совсем запутался.. Мне на форму договор надо автоматически присвоить данные из таблицы студент. К примеру я ввожу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru