Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 59

Sql запрос

12.05.2015, 23:47. Показов 2591. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO Таблица2 (фамилия, имя) ');
ADOQuery1.SQL.Add('SELECT фамилия, имя ');
ADOQuery1.SQL.Add('FROM Таблица1');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Text:='SELECT * FROM Таблица2';
ADOQuery1.Active:=true;
этот код что я кинул копирует записи, например занес я в таблицу 1, три записи
1
2
3 и беру нажимаю на кнопку с кодом они копируется
и во второй таблице появляются записи
1
2
3
а если я захочу опять добавить в таблицу 1 запись ещё например одну
4
и нажму копировать то в таблице 2 получится так
1
2
3
1
2
3
4
а как мне сделать чтобы в этот раз оно скопировала только 4 запись?
чтобы было
1
2
3
4
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.05.2015, 23:47
Ответы с готовыми решениями:

SQL запрос по фрагменту строки сохраненной в таблице SQL
Прошу помощи. Есть SQL таблица-1, в ней есть столбец по имени Model_Vagona с типом данных ntext Есть SQL таблица-2, в ней есть столбец...

SQL запрос, работающий в MS SQL Menegment'e не работает в делфи
Требуется выполнить запрос по нажатию кнопки, запрос сначала написал в Microsoft SQL Managment, где и написал свою БД, там запрос работает,...

SQL и ComboBox в Delphi. Нужно чтобы при выборе специальности в комбобоксе это значение вносилось в SQL запрос
procedure TForm3.Button2Click(Sender: TObject); begin try ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT Абитуриент.фамилия,...

38
32 / 53 / 9
Регистрация: 05.12.2013
Сообщений: 261
14.05.2015, 21:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от niTecep Посмотреть сообщение
ввел в поле ид, ид записи но изменений тоже не было
Можно скрин самой таблицы 1 и 2
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
14.05.2015, 22:01
Цитата Сообщение от Maxim******* Посмотреть сообщение
Можно скрин самой таблицы 1 и 2
на #8 сам БД скачайте и смотрите
0
32 / 53 / 9
Регистрация: 05.12.2013
Сообщений: 261
14.05.2015, 22:08
Нужно разжевать и в рот положить

SQL
1
2
3
INSERT INTO t2
SELECT * FROM t1
WHERE код NOT IN (SELECT код FROM t2)
id - это и есть код
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
14.05.2015, 22:32
Цитата Сообщение от Maxim******* Посмотреть сообщение
Нужно разжевать
Вы код проверили на то базе и говорите что он работает ?
SQL
1
2
3
INSERT INTO Таблица2
SELECT * FROM  Таблица1
WHERE код NOT IN (SELECT код FROM  Таблица2)
Добавлено через 18 минут
Цитата Сообщение от Maxim******* Посмотреть сообщение
Нужно разжевать и в рот положить
Оставите себе ..... плюсую тебя за уважение ( участников форума, за ваши вежливые выражения ) и за ваши неправильное решения Т.З
0
32 / 53 / 9
Регистрация: 05.12.2013
Сообщений: 261
14.05.2015, 22:35
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Вы код проверили на то базе и говорите что он работает ?
True.
0
32 / 53 / 9
Регистрация: 05.12.2013
Сообщений: 261
14.05.2015, 22:44
Database10.rar
Качайте, смотрите. Там база с запросом и результатом выполнения.
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
14.05.2015, 22:55
Цитата Сообщение от Maxim******* Посмотреть сообщение
Там база с запросом и результатом выполнения.
Это код не работает .
T-SQL
1
2
3
4
INSERT INTO Таблица2
SELECT *
FROM Таблица1
WHERE код NOT IN (SELECT код FROM  Таблица2);

Т.З написано на #1 до сколко я должен смотреть ваши флуд ? и ваши хамски выражения ?
Нужно разжевать и в рот положить
Добавлено через 1 минуту

Не по теме:

Может вам давать что то другой в роту

0
32 / 53 / 9
Регистрация: 05.12.2013
Сообщений: 261
14.05.2015, 23:34
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Т.З написано на #1 до сколко я должен смотреть ваши флуд ? и ваши хамски выражения ?
По Тз:
Цитата Сообщение от niTecep Посмотреть сообщение
апример занес я в таблицу 1, три записи
1
2
3 и беру нажимаю на кнопку с кодом они копируется
и во второй таблице появляются записи
Мой запрос это сделает.
Цитата Сообщение от niTecep Посмотреть сообщение
а если я захочу опять добавить в таблицу 1 запись ещё например одну
4
и нажму копировать то в таблице 2 получится так
1
2
3
1
2
3
4
а как мне сделать чтобы в этот раз оно скопировала только 4 запись?
чтобы было
1
2
3
4
Если в первую таблицу добавить одну запись и вновь выполнить запрос, то в таблицу 2 запишется только новая запись. И что тут не работает? Что не по ТЗ? Решаешь за низ ДЗ, ещё и доказывать свою правоту должен? Что не работает? Руки,наверное. Если что-то не выходит, нужно говорить конкретно ЧТО. А не отправлять в топку помощь.
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
15.05.2015, 00:01
Цитата Сообщение от Maxim******* Посмотреть сообщение
нужно говорить конкретно ЧТО.
Что вы меня раздражайте ваши вежливы выражениями ? задача уже решил на #9 . А сейчас постараюсь тебя доказать что ты флудиш и больше нечего !
------ Человек говорить
этот код что я кинул копирует записи, например занес я в таблицу 1, три записи
1
2
3 и беру нажимаю на кнопку с кодом они копируется
и во второй таблице появляются записи
1
2
3

Что здесь не понятно ?
Продолжаем
---------------------
а если я захочу опять добавить в таблицу 1 запись ещё например одну
4
и нажму копировать то в таблице 2 получится так
1
2
3
1
2
3
4

Он не хочет при нажатие кнопки копировать копировалось все данных который уже есть на таблицу2 что копировалось только то данных который есть на таблиц1 и нету таблицу2 и за просто решается это задача с помощью инструкции MERGE А вы что здесь пишите и каким выражений ?
1
1234 / 424 / 107
Регистрация: 31.03.2012
Сообщений: 1,159
15.05.2015, 01:43
Цитата Сообщение от xxbesoxx Посмотреть сообщение
Не будет работать примерно так ! причем тут LEFT JOIN t2 ON t1.id = t2.id вы смотрели структуру БД ?
Это же почему не будет работать? вот структура двух таблиц - 1) 2)
на вопрос смотрел ли структуры БД, будем считать, что смотрел
Вот данные для этих таблиц 1) три записи 2) нет записей
Сам запрос
Диалог при выполнении этого запроса ,
и соответственно результат - вторая таблица после выполнения запроса (три записи)
далее добавил пару записей в первую таблицу - вот таблица 1 с добавленными записями и повторно выполнил запрос на добавление результат ниже. И что здесь не работает?
Миниатюры
Sql запрос  
2
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
15.05.2015, 03:01
Цитата Сообщение от Joeymax Посмотреть сообщение
Это же почему не будет работать?
Мне не нужно ваши код и ваши скриншоти .... для интереса выложите это БД вашим сохраненим запроса и протестирую как работает .... Очень интересно как это у вас работает правильно
SQL
1
2
3
4
INSERT INTO Таблица2 ( код, фамилия, имя, отчест )
SELECT Таблица1.код, Таблица1.фамилия, Таблица1.имя, Таблица1.отчест
FROM Таблица1 LEFT JOIN Таблица2 ON Таблица1.код = Таблица2.код
WHERE (((Таблица2.код) IS NULL));
Что за диалог у вас ? человек подключается БД через Delphi и зам вложение SQL ......... ладно выложите БД с запросами как вас его работает ,

Добавлено через 4 минуты
Цитата Сообщение от Joeymax Посмотреть сообщение
запрос на добавление результат ниже. И что здесь не работает?
А вы попробуйте удалить Таблица2 данных и выполните это запрос еще раз

Добавлено через 25 минут
Цитата Сообщение от Joeymax Посмотреть сообщение
вот структура двух таблиц - 1
Пардон да через Delphi работает правильно
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button1Click(Sender: TObject);
begin
 with ADOQuery1 do
 begin
   Close;
   SQL.Text := 'INSERT INTO Таблица2 ( код, фамилия, имя, отчест ) '+
               ' SELECT Таблица1.код, Таблица1.фамилия, Таблица1.имя, Таблица1.отчест  '+
               ' FROM Таблица1 LEFT JOIN Таблица2 ON Таблица1.код = Таблица2.код  '+
               ' WHERE (((Таблица2.код) is null));';
   ExecSQL;
 end;
end;
 
end.
1
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 59
15.05.2015, 15:33  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button1Click(Sender: TObject);
begin
 with ADOQuery1 do
 begin
   Close;
   SQL.Text := 'INSERT INTO Таблица2 ( код, фамилия, имя, отчест ) '+
               ' SELECT Таблица1.код, Таблица1.фамилия, Таблица1.имя, Таблица1.отчест  '+
               ' FROM Таблица1 LEFT JOIN Таблица2 ON Таблица1.код = Таблица2.код  '+
               ' WHERE (((Таблица2.код) is null));';
   ExecSQL;
 end;
end;
 
end.
если таблица1 на, форме №1 а таблица2 на форме №2 Как запрос тогда написать?

Добавлено через 1 час 31 минуту
0
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,600
15.05.2015, 17:10
Цитата Сообщение от niTecep Посмотреть сообщение
Как запрос тогда написать?
Друг можно за просто заменить СУБД вот здесь есть обсуждения Замена СУБД в программе
и пишите в T-SQL то пример который у меня на #9 по инструкции MERGE
0
0 / 0 / 0
Регистрация: 08.05.2015
Сообщений: 59
16.05.2015, 01:00  [ТС]
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
18.05.2015, 03:26
Цитата Сообщение от niTecep Посмотреть сообщение
таблица1 на, форме №1 а таблица2 на форме №2
Причем здесь формы?? запрос выполняется на стороне СУБД.
Цитата Сообщение от xxbesoxx Посмотреть сообщение
через Delphi работает правильно
Код рабочий. Что еще не так?
0
18.05.2015, 09:10

Не по теме:

Цитата Сообщение от Bit_Man Посмотреть сообщение
Что еще не так?
Да ладно, забудь ;) все нормально.

0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 9
20.05.2015, 14:39
Bit_Man,

Здравствуйте!
Помогите разобраться что делаю не так. Из Delphi. База Access

1 Выбор всех записей с не пустым полем Объект:
DM.AQKr.Close;
DM.AQKr.SQL.Clear;
DM.AQKr.SQL.Add('SELECT JKross.ATS, JKross.Ramka, JKross.Para, JKross.Npco,') +
('JKross.Telefon, JKross.Object,') +
('Ulicy.Ulica, JKross.Dom, JKross.Korp, JKross.Kv, JKross.Data ') +
(', JKross.Ramka_K, JKross.Para_K, Spi.Spi, Tobj.Tip, Jkross.Code' ) +
(' FROM JKross, Ulicy, Spi, Tobj') +
('WHERE JKross.Ulica = Ulicy.Code ') +
('AND Spi.Code = JKross.Spi') +
('AND Tobj.Code = JKross.Tip') +
('AND JKross.Object <> ""') +
('ORDER BY JKross.ATS, JKross.Ramka, JKross.Para');
DM.AQKr.Open;

2 Выбор всех записей с пустым полем Объект:
DM.AQKr.Close;
DM.AQKr.SQL.Clear;
DM.AQKr.SQL.Add('SELECT JKross.ATS, JKross.Ramka, JKross.Para, JKross.Npco,') +
('JKross.Telefon, JKross.Object,') +
('Ulicy.Ulica, JKross.Dom, JKross.Korp, JKross.Kv, JKross.Data ') +
(', JKross.Ramka_K, JKross.Para_K, Spi.Spi, Tobj.Tip, Jkross.Code' ) +
(' FROM JKross, Ulicy, Spi, Tobj') +
('WHERE JKross.Ulica = Ulicy.Code ') +
('AND Spi.Code = JKross.Spi') +
('AND Tobj.Code = JKross.Tip') +
('AND (JKross.Object IS NULL OR JKross.Object IN (""))') +
('ORDER BY JKross.ATS, JKross.Ramka, JKross.Para');
DM.AQKr.Open;


Проблема в том, что есть как минимум одна запись с пустым полем Объект, но она не попадает в выбор 2
Так же эта запись не попадает в выбор 1 если у него поле Объект не пустое.

Парадокс заключается еще и в том, что эта запись начинает появляться в обоих списках только если
поле Улица не пустое

Спасибо
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
21.05.2015, 03:22
попробуй так
SQL
1
AND JKross.Object IS NOT NULL AND JKross.Object <> ""
SQL
1
AND (JKross.Object IS NULL OR JKross.Object = ""))
0
0 / 0 / 0
Регистрация: 20.05.2015
Сообщений: 9
21.05.2015, 15:43
Bit_Man, Спасибо за ответ.
Цитата Сообщение от Bit_Man Посмотреть сообщение
Код SQL
1
AND JKross.Object IS NOT NULL AND JKross.Object <> ""
На самом деле у меня стоит именно этот код. Я его не указал потому, что она ничего не меняет в разных комбинациях ее частей.

Цитата Сообщение от Bit_Man Посмотреть сообщение
Код SQL
1
AND (JKross.Object IS NULL OR JKross.Object = ""))
Сразу дает ошибку "Оператор IN без скобок ()

Ошибку не дает на тот код, что указан у меня = (""))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2015, 15:43
Помогаю со студенческими работами здесь

Sql запрос
Вопрос такой Есть запрос: SELECT PFAMILIA AS &quot;Фамилия&quot;,NUMBER AS &quot;Номер участка&quot;' FROM PATIENT WHERE (NUMBER=4) ORDER BY...

sql запрос
Добрый день! Надо было сделать программу для вывода в &quot;StringGrid&quot; sql базы , И собственно нужно было отсортировать по месяцам...

SQL запрос
Здравствуйте! У меня есть две таблицы dat и dat1, есть SQL запрос на вывод из первой таблицы(dat) ср.значения из поля datniz во вторую...

sql запрос
привет всем ребята я создал sql 2000 хранимые процедуры set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO

Запрос в SQL
Скажите в чем ошибка у меня есть 2 таблицы: mer и mer_ur, в них поля: data, mer, lico. Я делаю запрос (точней пишу) select* from...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru