Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли обойти правила сортировки в Union? / 9 сообщений из 9, страница 1 из 1
13.01.2005, 12:41:26
    #32862986
NikP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
Мне нужно соединить две таблицы, но чтобы одна сортировалась по убыванию, а другая по возрастанию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT Koordinat.X, Koordinat.Y
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region1) INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))
ORDER BY Koordinat.ID_Koordinat
UNION SELECT Koordinat.X, Koordinat.Y
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region2) INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))
ORDER BY Koordinat.ID_Koordinat DESC;
...
Рейтинг: 0 / 0
13.01.2005, 13:23:35
    #32863099
Shark
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
Я думаю, надо сделать вычисляемое поле и по нему нормально отсортировать. Или два поля.
Первое поле- в первой табличке 1, во второй 2
Второе поле- в первой Код, во второй -Код
Ну и сортируем по двум полям.
...
Рейтинг: 0 / 0
13.01.2005, 13:29:49
    #32863109
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
Сортируем либо во вложенном либо во внешнем (сохранённом) запросе, а их результаты уже объединяем.
...
Рейтинг: 0 / 0
13.01.2005, 13:34:31
    #32863125
NikP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
HummerСортируем либо во вложенном либо во внешнем (сохранённом) запросе, а их результаты уже объединяем.
Вложенные не проходят сортирует автоматом по первому столбцу несмотря на то что нет Order by, сохраненные скорее всего тоже не пройдут
склоняюсь к тому что предложил Shark.
...
Рейтинг: 0 / 0
13.01.2005, 13:41:55
    #32863140
ы
ы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT Koordinat.X, Koordinat.Y, ID_Koordinat as fob
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region1)
INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))

UNION 

SELECT Koordinat.X, Koordinat.Y, -ID_Koordinat as fob
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region2) INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))

ORDER BY fob;
...
Рейтинг: 0 / 0
13.01.2005, 13:43:25
    #32863148
ы
ы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
а чтобы записи разных таблиц шли не в перемешку, можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT Koordinat.X, Koordinat.Y,  0  as fob1, ID_Koordinat as fob2
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region1)
INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))

UNION 

SELECT Koordinat.X, Koordinat.Y,  1 , -ID_Koordinat
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region2)
INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))

ORDER BY fob1, fob2;
...
Рейтинг: 0 / 0
13.01.2005, 13:44:18
    #32863149
ы
ы
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
отстал на всю жизнь
...
Рейтинг: 0 / 0
13.01.2005, 13:48:13
    #32863160
NikP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
ыа чтобы записи разных таблиц шли не в перемешку, можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT Koordinat.X, Koordinat.Y,  0  as fob1, ID_Koordinat as fob2
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region1)
INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))

UNION 

SELECT Koordinat.X, Koordinat.Y,  1 , -ID_Koordinat
FROM (Region INNER JOIN Granicha ON Region.ID_Region = Granicha.C_Region2)
INNER JOIN Koordinat ON Granicha.ID_Granicha = Koordinat.C_Granicha
WHERE (((Region.Region)="Ивановская"))

ORDER BY fob1, fob2;

Именно это мне и нужно
поистине все гениальное просто
...
Рейтинг: 0 / 0
13.01.2005, 18:17:15
    #32863924
Slider_spb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли обойти правила сортировки в Union?
Вобще-то по стандарту SQL после UNION в ORDER BY указываются номера полей, а не их наименования, т.к. наименования у кажого селекта могут быть разные.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Можно ли обойти правила сортировки в Union? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]