Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Не работает запрос...   Найти похожие ветки 

 
Prooksius ©   (2002-10-02 10:25) [0]

Привет мастерам!

Есть такие таблы:
Rank (должности вообще),
VesselRank(должности на судне),
ReqRank (люди (и их должности) в заявке (не важно какой)).

Связи:
Rank - VesselRank: 1 ко многим
VesselRank - ReqRank: 1 ко многим

Такой запрос работает нормально, т.е. сортируется по R.RGrade:

select R.Name
from VesselRank VR, Rank R, ReqRank RR
where VR.VessRankID = RR.VessRankID AND R.RankID = VR.RankID
order by R.RGrade

Если добавить еще и отображение фамилий таким образом:
(связь Person - ReqRank: 1 ко многим)

select R.Name, P.LastName
from VesselRank VR, Rank R, ReqRank RR
LEFT JOIN Person P ON P.PersonID = RR.SOnPersonID

where VR.VessRankID = RR.VessRankID AND R.RankID = VR.RankID
order by R.RGrade

то сортировка order by не работает!!!

Нужно ставить LEFT JOIN, т.к. ссылка на человека RR.SOnPersonID может быть NULL.

Как быть? Такое есть только в FireBird, в IB5.6 было все в норме!
Это глюк FB, или меня где-то глючит?

Заранее спасибо.


 
Johnmen ©   (2002-10-02 10:39) [1]

Немного философии :
Если НД сортируется по полю, которого нет в НД, то это говорит о некоторой непродуманности при создании таблиц (нормализация !).
Немного формальной логики :
Если под IB5.6 работало, а под FireBird то же самое не работает, то причина в последнем.


 
Prooksius ©   (2002-10-02 10:53) [2]

2 Johnmen © (02.10.02 10:39)
По философии:
Ну в чем проблемы-то, просто добавить R.RGrade в select и все.
А насчет глюка в FB я и сам догадываюсь.
Просто может, кто-то сталкивался с таким и как-то поборол...


 
Prooksius ©   (2002-10-02 12:00) [3]

В дополнение к вышесказанному.
Если отсортировать в обратном порядке
(order by R.RGrade DESC), то все работает нормально.
Это однозначно глюк FB.
Т.е., если надо получить НД с Outer Join, отсортированный по какому-либо полю (причем по некоторым полям работает нормально), то это не всегда работает, сортировка получается такая, как если бы не было order by вообще.
%*(


 
Prooksius ©   (2002-10-02 13:32) [4]

Пришлось все-таки использовать Inner Join. Без него не работает.
Грустно, господа. Нет программ без глюков. :-(



Страницы: 1 вся ветка

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-78602
ToLIk Orshanets
2002-10-02 19:26
2002.10.24
Уроки по базам данных для чайника(ов).


1-78399
Abajun
2002-10-15 12:30
2002.10.24
ошибка


4-78716
denisz
2002-09-11 22:00
2002.10.24
Список файлов


4-78734
EndDie
2002-09-10 12:43
2002.10.24
ReadProcessMemory


14-78620
Феликс
2002-10-03 15:32
2002.10.24
Глупые загадки