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

Вниз

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

 
Pako   (2003-12-24 10:06) [0]

Добрый день! Знаю что запрос составлен неверно, поэтому прошу "не ругать":)))
вобщем все что до второго SELECТ работает корректно, но мне необходимо получить еще и наименование статуса из четвертой таблички
SELECT Z.Razdel, Z.Project, ( ( (P.FAM || " ") || P.Nam) || " ") || P.Par FullName, C.Name_Prog
FROM "Zayavki.DB" Z
LEFT OUTER JOIN "Char_Prog.DB" C
ON (Z.Konkurs = C.Kod_Prog)
LEFT OUTER JOIN "Personal.DB" P
ON (Z.Rukovod = P.Number)
(SELECT S.Name FROM "Status_Prog.DB" S
LEFT OUTER JOIN "Char_Prog.DB" C ON (S.Name=C.Status))


 
Johnmen ©   (2003-12-24 10:26) [1]

SELECT Z.Razdel, Z.Project, ( ( (P.FAM || " ") || P.Nam) || " ") || P.Par FullName, C.Name_Prog, S.Name
FROM "Zayavki.DB" Z
LEFT JOIN "Char_Prog.DB" C ON (Z.Konkurs = C.Kod_Prog)
LEFT JOIN "Personal.DB" P ON (Z.Rukovod = P.Number)
LEFT JOIN "Status_Prog.DB" S ON (S.Name=C.Status)


 
Nikolay M. ©   (2003-12-24 10:30) [2]

Насколько я разобрался во всем этом, могу предположить, что достаточно

> (SELECT S.Name FROM "Status_Prog.DB" S
> LEFT OUTER JOIN "Char_Prog.DB" C ON (S.Name=C.Status))

перенести в список полей после

> C.Name_Prog

Правда, "Char_Prog.DB" получается приджойненной два раза, но тут уже надо смотреть ближе на таблицы, а вообще, что-то мне подсказывает, что таблицы прсто неправильно спроектированы.


 
Pako   (2003-12-24 10:33) [3]


> Johnmen © (24.12.03 10:26) [1]
> SELECT Z.Razdel, Z.Project, ( ( (P.FAM || " ") || P.Nam)
> || " ") || P.Par FullName, C.Name_Prog, S.Name
> FROM "Zayavki.DB" Z
> LEFT JOIN "Char_Prog.DB" C ON (Z.Konkurs = C.Kod_Prog)
>
> LEFT JOIN "Personal.DB" P ON (Z.Rukovod = P.Number)
> LEFT JOIN "Status_Prog.DB" S ON (S.Name=C.Status)

в этом случае S.Name пусто


 
Johnmen ©   (2003-12-24 10:37) [4]

>Pako (24.12.03 10:33)

Значит условие соединения ни разу не выполнено...:)

Ты бы словами описал, что надо.


 
Pako   (2003-12-24 10:58) [5]

Словами:
Главной является таблица заявок "Zayavki.DB" Z,остальные "справочные". Из "Char_Prog.DB" надо взять наименование программы куда направлена заявка(C.Name_Prog), из "Personal.DB" ФИО научного руководителя, из "Status_Prog.DB" статус программы, но загвоздка в том что код этого статуса хранится в "Char_Prog.DB" (конечно можно было хранить не код статуса, а сразу наименование в "Char_Prog.DB" но это не удобно для других таблиц)


 
Johnmen ©   (2003-12-24 11:03) [6]

Тогда приведенный мной запрос верен...:)
И если у заявки нет программы, то нет и статуса.
Или же программа есть, но у ней нет статуса.


 
Pako   (2003-12-24 11:35) [7]

Самое интересное что у всех заявок есть программы, и статус указан почти у всех.


 
Johnmen ©   (2003-12-24 11:48) [8]

Тогда, возможно, твоя проблема в S.Name=C.Status
Ты уверен, что это верно ?


 
Pako   (2003-12-24 11:56) [9]


> Тогда, возможно, твоя проблема в S.Name=C.Status

Конечно же неверно S.Name=C.Status так запрос вообще не выполнится т.к. S.Name-это стринг C.Status - целое, надо
S.Kod =C.Status
Если выполнить приведенный тобой запрос но с S.Kod =C.Status получаем пустой столбец S.Name


 
JibSkeart ©   (2003-12-24 11:58) [10]

тогда покажи верные связи с таблицам


 
Johnmen ©   (2003-12-24 12:00) [11]

Это говорит о том, что для записи нет соответствия
Z.Konkurs = C.Kod_Prog или/и S.Kod =C.Status


 
Pako   (2003-12-24 12:14) [12]

Спасибо:))



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
8-63266
vvn
2003-09-17 13:16
2004.01.20
Вопрос по DelphiX. загрузка из x-file


11-63051
Nix
2003-05-04 18:48
2004.01.20
кол-во секций в Ini файле???


1-63245
Big
2004-01-08 16:41
2004.01.20
Событие закрытия дочернего окна в среде MDI


1-63137
ss300
2004-01-07 00:37
2004.01.20
преобразование string в float ....


1-63179
ValeX
2004-01-10 16:24
2004.01.20
компилер пропускает строки