|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.12.2014, 03:32 | #1 |
Пользователь
Регистрация: 05.12.2014
Сообщений: 11
|
Скопировать строки из таблицы в таблицу с неповторяющимися значениями нескольких полей
Необходимо скопировать строки из таблицы1 (HourData) в таблицу2 (HourData_2). При этом копировать только те строки, для которых одновременно выполняется условие: HourData.Data<>HourData_2.Data AND HourData.TimeMs<>HourData_2.TimeMs.
БД Access. Структура таблиц аналогичная: поля Data, TimeMs, TStreet, Tinside, DataEdit Пытался несколькими способами, но выдает либо избыточное количество строк (почти декартово произведение), либо не все строки, отвечающие условию задачи В случае одновременного равенства, т.е. когда оба поля совпадают, проблем нет: Код:
Код:
Последний раз редактировалось Stilet; 11.12.2014 в 07:44. |
11.12.2014, 07:55 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
where not exists(select 1 from таблица2 where таблица2.дата=таблица1.дата and таблица2.время=таблица1.время)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
11.12.2014, 09:24 | #3 |
Пользователь
Регистрация: 05.12.2014
Сообщений: 11
|
Спасибо
Итоговый вариант:
with MySQLQueryRez do begin SQL.Clear; //вставить строку по ключу дата+время Zapros:='INSERT INTO HourData_2 (Data,TimeMs,TemperatureInside,Temp eratureStreet,DataFull) '; SQL.Add(Zapros); Zapros:='SELECT HourData.Data, HourData.TimeMs, HourData.TemperatureInside, HourData.TemperatureStreet, HourData.DataFull FROM HourData'; SQL.Add(Zapros); Zapros:='WHERE not exists(select 1 from HourData_2 where HourData.Data=HourData_2.Data and HourData.TimeMs=HourData_2.TimeMs); '; SQL.Add(Zapros); ExecSQL; end; Единственно, не понял/не нашел,что значит 1 в SELECT 1 FROM Таблица |
11.12.2014, 09:51 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А что бы быстрей селект работал. 1 вычисляемое поле, выражение для вычисления которого из одной константы состоит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на одномерный массив: скопировать таблицы А[1..3] и B[1..8] в таблицу С | kirill957 | Помощь студентам | 4 | 19.05.2014 22:37 |
Access ограничить значение поля таблицы значениями полей другой таблицы | Сергей089 | Microsoft Office Access | 10 | 08.12.2010 02:22 |
Как скопировать данные из таблицы, включающей пустые строки | yursanch | Microsoft Office Excel | 5 | 22.09.2010 16:07 |
Объеденение полей запроса в для отображения нескольких полей в одном списке | mrCreator | Microsoft Office Access | 3 | 08.08.2009 00:53 |
с помощью макроса скопировать значение всей строки(не одной ячейки, а нескольких) | global | Microsoft Office Excel | 6 | 27.11.2008 17:43 |