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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.10.2019, 14:05
mars0n mars0n вне форума
Прохожий
 
Регистрация: 29.10.2019
Сообщения: 3
Версия Delphi: delphi 7
Репутация: 10
Вопрос Неправильно срабатывает order by при union

Используя adsQuery компонента advantage подключаюсь к vfp dbf.

запрос:
Код:
select sp.*, m.c, m.fio, '1' as "type_of_data"
from "sp.dbf" sp
inner join "m.dbf" m
on sp.t = m.t
where (sp.datevv > '01.01.2019') and (sp.datevv < '12.12.2019')
union all
select sp.*, m.c, m.fio, '2' as "type_of_data"
from "sp.dbf" sp
inner join "m.dbf" m
on sp.t = m.t
where (sp.date_kor > '01.01.2019') and (sp.date_kor < '12.12.2019')
order by 'type_of_data' 

при
Код:
order by 'type_of_data'
все норм работает , но как только пишу
Код:
order by 'type_of_data', c
- сортирует сначала по c, и только потом по 'type_of_data'

в чем моя ошибка?
Спасибо.

Последний раз редактировалось mars0n, 29.10.2019 в 14:15.
Ответить с цитированием
  #2  
Старый 29.10.2019, 15:37
mars0n mars0n вне форума
Прохожий
 
Регистрация: 29.10.2019
Сообщения: 3
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

вот что пишут на сайте advantage:

Цитата:
Statements used in a UNION can only have ORDER BY clauses on the last statement of the UNION. If an ORDER BY clause is placed at the end of a UNION statement, the ORDER BY would apply to the result of the entire UNION, not just the last statement in the UNION. If a statement within the UNION must have an ORDER BY clause, the statement can be turned into a subquery, which then can have the ORDER BY.
Ответить с цитированием
  #3  
Старый 29.10.2019, 16:28
mars0n mars0n вне форума
Прохожий
 
Регистрация: 29.10.2019
Сообщения: 3
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Проблему решил, даже при order by 'type_of_data' он на самом деле не сортировал, он просто не распознает то что в кавычках.
А если написать type_of_data без кавычек - ругается.
Поставил в select type_of_data на первое место и написал
Код:
order by 1, c
заработало
театр одного актера, хотя может кому-нибудь помогу

но вопрос остается, как в order by написать type_of_data?

Последний раз редактировалось mars0n, 29.10.2019 в 16:32.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter