Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.025 c
3-63018
MakNik
2003-12-22 13:31
2004.01.20
Помогите оптимизировать запрос


14-63374
ertong
2003-12-28 15:11
2004.01.20
Алгоритм Флойда Стейнберга


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


14-63349
Undert
2003-12-27 00:17
2004.01.20
Как сделать (PHP)


14-63377
Билл Гейц
2003-12-29 14:10
2004.01.20
Инсталлятор NSIS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский