Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.01.2012, 12:49
watto watto вне форума
Прохожий
 
Регистрация: 23.01.2012
Сообщения: 2
Репутация: 10
По умолчанию UNION в ADOQuery (MS ACCESS)

Доброе время суток!
Есть 2 таблицы с одинаковыми полями (про нормализацию в данном случае не будем), TBL1 и TBL2.
Запросы
Код:
SELECT id,date,km1,km2,memo1 from TBL1
WHERE date >= :DateFrom  and date <= :DateTo
AND km1 >= :KmFrom and km2 <= :KmTo
и
Код:
SELECT id,date,km1,km2,memo1 from TBL2
WHERE date >= :DateFrom  and date <= :DateTo
AND km1 >= :KmFrom and km2 <= :KmTo
выдают нужные мне данные.
Однако запрос
Код:
SELECT id,date,km1,km2,memo1 from TBL1
WHERE date >= :DateFrom  and date <= :DateTo
AND km1 >= :KmFrom and km2 <= :KmTo
UNION ALL 
SELECT id,date,km1,km2,memo1 from TBL2
WHERE date >= :DateFrom  and date <= :DateTo
AND km1 >= :KmFrom and km2 <= :KmTo
выдает только записи первой таблицы TBL1, хотя должны из обоих.
Типы полей все одинаковы.
ЧЯДНТ?
Заранее весьма спасибо.
Ответить с цитированием
  #2  
Старый 23.01.2012, 13:01
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

а такой сработает?
Код:
SELECT id,date,km1,km2,memo1 from TBL1
UNION ALL 
SELECT id,date,km1,km2,memo1 from TBL2
Ответить с цитированием
  #3  
Старый 23.01.2012, 13:42
watto watto вне форума
Прохожий
 
Регистрация: 23.01.2012
Сообщения: 2
Репутация: 10
По умолчанию

Нашел где косяк. При данной схеме игнорируются одинаковые параметры после первого использования. То есть, рабочий запрос вот:
Код:
SELECT id,date,km1,km2,memo1 from TBL1
WHERE date >= :DateFrom1  and date <= :DateTo1
AND km1 >= :KmFrom1 and km2 <= :KmTo1
UNION ALL 
SELECT id,date,km1,km2,memo1 from TBL2
WHERE date >= :DateFrom2  and date <= :DateTo2
AND km1 >= :KmFrom2 and km2 <= :KmTo2
Может кто знает, это фича или баг?
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter