![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL [D7, Paradox]
Pako © (2003-12-15 14:00:00)
Уважаемые мастера, помогите найти ошибку в запросе, плиз
дельфи на выполнение этого запроса не ругается, но результат 0 записей
SELECT Z.Razdel, Z.Project, C.Name_Prog, S.Name, P.FAM||" "||P.Nam||" "||P.Par As FullName
FROM Zayavki.DB Z, Char_Prog.DB C, Status_Prog.DB S Personal.DB P
WHERE Z.Konkurs=C.Kod_Prog AND C.Status=S.Kod AND Z.Rukovod=P.Number
sniknik (2003-12-16 13:36:00) [1]
> во всех таблицах только по одному уникальному ключу
вот по ним связь и делай (по ключам)
Pako (2003-12-16 13:32:00) [2]
> null могут быть?
да
во всех таблицах только по одному уникальному ключу
Кщд (2003-12-16 13:27:00) [3]
>а C.Kod_Prog может быть null?
>да может быть
вот этих записей (с C.Kod_Prog=null), согласно Вашему запросу, вы и не увидите в результирующем наборе.
ставьте просто join и разгребайте.
и прочитайте ж наконец-то об объединениях
sniknik (2003-12-16 13:26:00) [4]
Pako (16.12.03 12:55) [25]
и ты делаеш связь по несуществующим данным и удивляешся почему там ничего нет?
старанно было бы наоборот если бы было.
Pako (16.12.03 13:04) [29]
после стольких повторений, и отказов с твоей стороны что это не так, и получить подтверждение....
тут только по гусарски высказатся хочется, да так что это будет именно в тему ветки.
Pako (16.12.03 13:23) [33]
а еще молчиш как партизан. и проверки что предлагают не делаеш.
Pako (2003-12-16 13:23:00) [5]
ну запуталась я в этом запросе совсем:)))
Silver Alex (2003-12-16 13:20:00) [6]
> На какие??? Вы то их сами сформулировать можете? Такое ощущение
> что все на разных языках говорят!
повторю
Тип полей Programm.Status , Status.Kod, null могут быть?Foreign key есть?
напиши
select * from Programm p
where
exists (select * from Status s
where
P.Status=s.Kod)
хоть что нибудь вернет?
Кщд (2003-12-16 13:15:00) [7]
Pako (16.12.03 13:04) [29]
а Вы сами смысл запроса, который Вы привели последний раз понимаете?
советы - штука хорошая, но и самому задумываться - не лишнее.
да и прочитать о left/right join неплохо б.
Pako (2003-12-16 13:14:00) [8]
> Ты бы на вопросы ответила
На какие??? Вы то их сами сформулировать можете? Такое ощущение что все на разных языках говорят!
а C.Kod_Prog может быть null?
да может быть, но можно понять и по-другому (типа это поле вообще пустое в таблице)
Pako (2003-12-16 13:04:00) [9]
Плохиш_ и Кщд вы тему форума не перепутали случайно???
Silver Alex (2003-12-16 13:01:00) [10]
> Pako (16.12.03 12:55) [25]
Правильно, но мы то не знаем что у тебя творится.Может нет там записей вообще, или они разные.Ты бы на вопросы ответила может сообща и побороли бы багу
Кщд (2003-12-16 13:00:00) [11]
я не гусар, но, кроме RTFM, добавить нечего
Плохиш_ (2003-12-16 12:58:00) [12]
>Pako (16.12.03 12:55) [25]
ээээ, хмм .... Гусары! молчать!!!
Pako (2003-12-16 12:55:00) [13]
> Silver Alex © (16.12.03 12:38) [23]
Но этот вернет значение только в том случае, если существует запись в поле Status.
Мне нужно, чтобы попали заявки с программами и где указан статус и где не указан. Точнее - должны попасть все заявки независимо заполнены ли указанные поля или нет. (Т.е. если была заявка - она по-любому должна отобразиться, даже если у нее указано только наименование проекта)
Кщд (2003-12-16 12:41:00) [14]
а C.Kod_Prog может быть null?
Silver Alex (2003-12-16 12:38:00) [15]
> Pako (16.12.03 12:25) [20]
это вобщем то и по запросу видно.Тип полей Programm.Status , Status.Kod, null могут быть?Foreign key есть?
напиши
select * from Programm p
where
exists (select * from Status s
where
P.Status=s.Kod)
хоть что нибудь вернет?
Pako (2003-12-16 12:36:00) [16]
Да как же не существует, когда для каждой программы указан статус!!! Точно есть две записи 2=2, (федеральная), несоклько 5=5(международная и т.п.)
Плохиш_ (2003-12-16 12:30:00) [17]
>Pako (16.12.03 12:25) [20]
Значит несуществует таких статусов:
C.Status = S.Kod
Pako (2003-12-16 12:25:00) [18]
Есть следующие таблицы:
- "Заявки" из всех полей нас интересует Z.Razdel и Z.Project (наименование раздела программы и наименование проекта соответственно), связана с "Программы" (Zayavki.Konkurs=Programm.Kod_Prog)
- "Программы" - поле C.Name_Prog (наименование раздела программы)
- "Статус программы" - S.Name (статус программы, например, федеральная, региональная и т.п), связана с "Программы" (Programm.Status=Status.Kod)
- "Персоналии" - из полей P.FAM||" "||P.Nam||" "||P.Par As FullName получаем ФИО, связана с "Заявки" (Zayavki.Rukovod=Person.Kod)
Надо получить список всех заявок.
Запрос
> Pako (16.12.03 09:06) [16]
возвращает все заявки, но без указания статуса, вот
Со всеми бывает , что элементарного не видишь:))
Может кто-нибудь поможет разобраться?
Pako (2003-12-16 10:41:00) [19]
> Где же в запросе вы получаете поле C.Status ?
Веселю:)))
В С.Status только код, а в S.Name как раз наименование "статуса", его я и хочу получить:)))
Silver Alex (2003-12-16 10:13:00) [20]
посмотреть бы структуру таблиц и их связи