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

Вставка данных в новую таблицу

14.02.2015, 16:32. Показов 990. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Когда-то было тестовым заданием для меня (сейчас решил доделать).

ТЕКСТ ЗАДАЧИ: Имеется список женихов и список невест.
Каждая запись списка содержит пол, имя, возраст, рост, вес, а также требования к партнеру:
наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост.
Объединить эти списки в список пар с учетом требований к партнерам без повторений женихов и невест.

КОД:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
USE job
--isman это параметр определяющий пол жениха или невесты
INSERT INTO small_list (name1, man_age, min_man_expect,max_man_expect) 
    SELECT names, age, min_age, max_age 
        FROM big_list WHERE isman = 1;
 
INSERT INTO small_list (name2, woman_age, min_woman_expect,max_woman_expect)
SELECT big_list.names, big_list.age, big_list.min_age, big_list.max_age FROM big_list,small_list
WHERE id IN (
    SELECT big_list.id
        FROM big_list,small_list 
            WHERE isman = 0 AND 
                small_list.man_age>=big_list.min_age AND 
                small_list.man_age<=big_list.max_age AND
                big_list.age<=max_man_expect AND 
                big_list.age>=min_man_expect)
 
SELECT * FROM small_list
SELECT * FROM big_list
ПРОБЛЕМА: вывод работы кода вложен ".png" файлом. Необходимо, чтобы "Андрей" и "Светлана" на рисунке сверху были расположены на одной строке как предполагаемые молодожены.

ВОПРОСЫ:
1) Возможно ли это сделать 1 сложным запросом, или нужно как-нибудь извернуться?
2) Как указать второй команде "insert" куда нужно вставить значения?
3) Тестовое задание можно было сделать работая из Delphi со списком руководствуясь условием задания, но решил использовать БД. 1 общий вопрос: как я знаю, в программировании можно сделать все... а вот средствами Т-SQL (имеется ввиду работа с БД) можно ли выполнить любую задачу или есть тупиковые ситуации?
Спасибо за внимание.
Миниатюры
Вставка данных в новую таблицу  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2015, 16:32
Ответы с готовыми решениями:

Вставка в новую таблицу
Доброго времени суток. Есть вот такой код: Use SalesAnalyst INSERT INTO .dbo.MyOFF ( Contractor, OUTNUM, ORDNUM,

Вставка данных в таблицу Insert
Добрый день, есть таблица например временная Declare @ii table (cc int, dd int) --хочу в нее вставить insert insert @ii...

Вставка данных в таблицу
Всем привет! Сделал веб-сервис отправки смс, с помощью библиотеки ALT.SMS.SMPP. Данные которые отправляю, сохраняю в БД. Проблема в...

8
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
15.02.2015, 13:04
union в помощь. с соответствующим агрегатом(агрегатоми).
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 5
16.02.2015, 09:26  [ТС]
Спасибо за совет.
Буду разбираться. Как все получится,- выложу результат, а Вам +1
0
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 5
17.02.2015, 13:24  [ТС]
Извините, но я нуждаюсь в уточнении. Помогите мне научиться мыслить правильно (Хотя бы относительно данной проблемы)
Работа моего кода предполагает сперва выборку всех Мужчин из общего списка, только потом каждому Мужчине подбирается девушка.

Вопрос технический: можно ли командой "INSERT INTO" вставить данные в уже существующие строки? (то есть Андрей то у меня уже записан в таблицу, а данными Светланы нужно заполнить поля где "Null").

Вопрос обобщенный: Изначально есть 1 таблица. В данном случае "join" не поможет. Можно ли решить задачу без создания промежуточных таблиц?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
17.02.2015, 13:41
все не так. Упрощенно - у тебя есть таблица со всеми персонажами (обоих полов, отдельное поле - пол)
и есть еще одна (т.н. граничная сущность)
{id_man;id_woman;state;date}
где state суть события (брак,развод), date - дата события

Добавлено через 41 секунду
по говнокодски и с использованием ОДНОЙ таблицы - курим UPDATE
1
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 5
17.02.2015, 13:50  [ТС]
Большое спасибо. Буду разбираться!
А стремление использовать меньше таблиц,- это боязнь тратить системные ресурсы. (Есть у меня такой "бзик", даже веб-проект свой в блокноте пишу).
Еще раз спасибо Вам, извините за беспокойство.
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
17.02.2015, 13:58
и как при таком подходе учитывать, что Игорь женился 3 раза? За кого второй раз (не последний) вышла замуж Тетя Мотя? Когда развелась в первый раз?
ТщательнЕе надо (с)
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
17.02.2015, 14:07
Цитата Сообщение от davidra Посмотреть сообщение
Изначально есть 1 таблица. В данном случае "join" не поможет. Можно ли решить задачу без создания промежуточных таблиц?
join как раз и поможет
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
with x as
(
 select
  g.id as groom_id, g.name as groom_name,
  b.id as bride_id, b.name as bride_name,
  row_number() over (partition by b.id order by (select 1)) as rn
 from
  GroomsBrides g join
  GroomsBrides b on b.is_groom = 0 and
                    b.age between g.min_age and g.max_age and
                    b.weight between g.min_weight and g.max_weight and
                    b.height between g.min_height and g.max_height and
                    g.age between b.min_age and b.max_age and
                    g.weight between b.min_weight and b.max_weight and
                    g.height between b.min_height and b.max_height
  where
   g.is_groom = 1
)
select
 x.groom_id, x.groom_name, x.bride_id, x.bride_name
from
 x
where
 x.rn = 1;
0
8 / 8 / 4
Регистрация: 08.04.2011
Сообщений: 46
19.02.2015, 09:34
invm, вот эта строка что означает?

SQL
1
ROW_NUMBER() OVER (partition BY women.id ORDER BY (SELECT 1)) AS rn
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2015, 09:34
Помогаю со студенческими работами здесь

Вставка данных в таблицу
Здравствуйте! Проблема в том, что конечное сообщение гласит, что произошла &quot;ошибка добавления&quot;, но фактически в таблице...

Вставка данных в таблицу
Добрый день! Есть код procedure TForm4.Button2Click(Sender: TObject); var i:string; jpg: TJPEGImage; begin ...

Вставка в таблицу данных по их ID
Здравствуйте! Помогите пожалуйста решить задачу! Есть три таблицы: абоненты, города, улицы. В таблице абонентов хранятся поля CityID,...

Вывод данных в таблицу на новую форму
Есть список, хранящий в себе марки телефонов и их параметры.. как вывести на новую форму в таблицу результаты вычислений которые делаются с...

Вставка данных из списка в таблицу
Суть вопроса: данные из элемента формы Список (в свою очередь данные в этот список загружаю из таблицы1) необходимо вставить в таблицу2....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru