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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2014, 14:03   #1
nata-khramenkova
 
Регистрация: 08.12.2013
Сообщений: 4
Печаль Заполнение таблицы данными через SQL запрос

Всем доброго дня. Беда, в следующем. Разрабатываю бд, есть таблицы. Одна заполнена, вторая никак не хочет заполняться. Хочу во вторую, вставить с помощью запроса данные из первой. Но ничего не выходит. Получается у меня добавление записи в таблицу какое то неправильное, там и у меня и values и select в куче. Я так понимаю команды должны быть отдельными?или синтаксис какой то особенный, не разберусь. И еще, скажите пожалуйста,а вернее помогите разобраться. Первичный ключ типа int, по нему ведь находится таблица и цепляет значения нам нужные,так? или можно вытащить только данные ключа в запросе?почему спрашиваю, у меня он int, а вставлять по запросу символы не хочет, или я не могу(

Код:
CREATE TABLE VIDI_STRAHOVANYA
(
ID_VIDA_STRAHOVANYA dnID,
V_NAME VARCHAR (100) NOT NULL,
PRIMARY KEY (ID_VIDA_STRAHOVANYA)
);

CREATE TABLE STRAHOVOI_SLUCHAI
(
ID_STRAHOVOGO_SLUCHYA dnID,
S_NAME VARCHAR (100) NOT NULL,
ID_VIDA_STRAHOVANYA dnID,
STAVKA NUMERIC (2,1) NOT NULL,
PRIMARY KEY (ID_STRAHOVOGO_SLUCHYA),
FOREIGN KEY (ID_VIDA_STRAHOVANYA) REFERENCES VIDI_STRAHOVANYA
);
А вот по первой "заполненной" строчке из таблиц.
первая таблица.
Код:
INSERT INTO VIDI_STRAHOVANYA (ID_VIDA_STRAHOVANYA, V_NAME) 
VALUES (‘1’,  'Личное страхование. Объект страхования - жизнь.');
вторая таблица.
INSERT INTO STRAHOVOI_SLUCHAI (ID_STRAHOVOGO_SLUCHYA, S_NAME, ID_VIDA_STRAHOVANYA, STAVKA)...
вот как мне тут ID_VIDA вставить, я не могу додуматься третьи сутки. Помогите пожалуйста!
Вообще мне нужно чтобы в страховых случаях было примерно так-номер, наименование случая, наименование вида, ставка...Спасибо.

Последний раз редактировалось Serge_Bliznykov; 13.03.2014 в 14:10.
nata-khramenkova вне форума Ответить с цитированием
Старый 13.03.2014, 14:25   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

поскольку этот ID_VIDA в первой таблицы мы задаем сами (в запросе на заполнение), то есть простой способ также "руками" задать нужный код при заполнении второй

INSERT into ... ( ... ID_VIDA ...) Values (....., '1', ........)

другой способ с поиском нужного кода в первой таблице. По чему? (наверное по имени)
INSERT into ( .... ID_VIDA....)
SELECT 'случай впервые',...., ID_VIDA, ....
from VIDI where VIDI.V_NAME='личное ..... '

В запросе можно указывать не только поля, но и константы (произвольные значения)
запрос вида select id_vida from vidi where v_name=.... дополняем разными нужными значениями (константами), теми же которое мы написали бы при обычной вставке(!)
и делаем вставку из запроса insert into ... select ....
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 13.03.2014 в 14:27.
evg_m на форуме Ответить с цитированием
Старый 18.03.2014, 12:34   #3
nata-khramenkova
 
Регистрация: 08.12.2013
Сообщений: 4
По умолчанию

Спасибо большое с этим я наконец то разобралась. Все у меня работает, по запросам выходят все нужные мне данные! Только у меня созрел еще один вопрос, чисто теоретический. Скажите пожалуйста. К примеру, на форме добавления нового договора, могу ли я туда поместить калькулятор, рассчитывающий данные (на основе введенных цифр, по одному и тому же условию, на каждый договор) чтобы полученный результат и введенные данные для расчетов, при нажатии кнопочки сохранить, внеслись в бд, такое реально или я уже фантазирую?)))К примеру нужно ввести вид, сумму, период и калькулятор рассчитает взнос, и уже потом все эти данные и от руки заполненные и рассчитанные автоматом, попали в базу данных. И чтобы еще примерно таким же способом рассчитать дату окончания действия договора, прыгая от даты старта + заданный период (введенный в строках калькулятора), но это уже без активных расчетов а просто при сохранении чтобы вписалось в таблицу, реально? И, значения этих полей должны быть обязательными или нет? Спасибо
nata-khramenkova вне форума Ответить с цитированием
Старый 18.03.2014, 13:55   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
примеру, на форме добавления нового договора, могу ли я туда поместить калькулятор, рассчитывающий данные
на форму можно поместить все что угодно (кнопки, поля ввода, ...)
главное при этом правильно при этом реализовать расчеты (включая проверку допустимости данных(мало ли что может написать пользователь)

Цитата:
чтобы полученный результат и введенные данные для расчетов, при нажатии кнопочки сохранить, внеслись в бд,
Что укажем в полях ввода (включая и рассчитанные данные, они ведь тоже будут где-то (в каком-то поле ввода) отражены) то и будем сохранять в БД.
И какая разница как это поле было заполнено руками пользователя или же расчитано, для сохранения главное знать есть там значение или нет.
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос: заполнение таблицы данными из другой таблицы с автоматическим добавлением строк yevgeniy.demidov Microsoft Office Excel 6 06.09.2012 15:27
Заполнение таблицы данными Ташка Microsoft Office Excel 1 13.05.2011 11:23
Заполнение таблицы данными по условию JVG Microsoft Office Excel 2 23.03.2011 18:13
заполнение таблицы данными smira Microsoft Office Excel 9 31.01.2011 11:21
Удаление данных из таблицы через SQL запрос Kity19 БД в Delphi 2 19.01.2011 23:35