![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Query [D7, Paradox]
Pako © (2003-11-20 10:04:00)
Есть таблица, в которой помимо других полей хранятся КодФамилии, КодИмени, КодОтчества (они хранятся в surname.db, name.db, fathename.db) - в Гриде (связанном с TQuery) в одном столбце надо вывести ФИО полностью?
ЮЮ (2003-11-21 04:20:00) [1]
Ну хотя бы в LocalSQL.hlp
(Number > 4600) and(S.KodSurname = F.KodSurName),
Pako (2003-11-20 12:23:00) [2]
> Книжку какую-нибудь по SQL прочитай, пожалуйста...
Спасибо, вы ооочень добры.
Наталия (2003-11-20 12:17:00) [3]
Книжку какую-нибудь по SQL прочитай, пожалуйста...
Pako (2003-11-20 12:10:00) [4]
Или так
SELECT S.Number, F.Surname ||N.Name||P.Patronymic As FullName
FROM Student.DB S ,Surname.DB F , Name.DB N, Patronymic.DB P WHERE Number>4600, S.KodSurname=F.KodSurName, S.KodName=N.KodName, S.KodPatronymic=P.KodPatronymic
Pako (2003-11-20 12:04:00) [5]
SELECT S.Number, F.Surname ||N.Name||P.Patronymic As FullName
FROM Student.DB S LEFT JOIN Surname.DB F , Name.DB N, Patronymic.DB P ON S.KodSurname=F.KodSurName, S.KodName=N.KodName, S.KodPatronymic=P.KodPatronymicWHERE Number>4600
Так можно писать?
Наталия (2003-11-20 11:42:00) [6]
А где в твоём запросе связь между таблицами, задаваемая в условии where? Ты же декартово произведение всех таблиц написала (о ужас).
Zacho (2003-11-20 11:41:00) [7]
> Pako (20.11.03 11:36) [17]
Скорее всего не виснет, а просто очень долго выполняет такой запрос, т.к. так ты получаешь декартово произведение трех таблиц. Где условия связи таблиц ?
Pako (2003-11-20 11:36:00) [8]
> А как ты делаешь это: "полей столбцу грида назначить"? так
> и пишешь: AS FULLNAME? :))))
Нет конечно:))Но после того как запрос исправила, патыюсь свойство FieldName хотя бы у первого столбца посмотреть, дельфа на мертов виснет, только снятие задачи помогает.
Запрос следующий:
SELECT S.Number, F.Surname||N.Name||P.Patronymic As FullName FROM Student.DB S, Surname.DB F, Name.DB N, Patronymic.DB P WHERE Number>4600
Наталия (2003-11-20 11:30:00) [9]
Pako (20.11.03 11:26) [13]
А как ты делаешь это: "полей столбцу грида назначить"? так и пишешь: AS FULLNAME? :))))
Pako (2003-11-20 11:30:00) [10]
>
> Johnmen © (20.11.03 11:28) [14]
> >Pako (20.11.03 11:26)
> >?
>
> ??
А в OI нельзя в свойство FieldName FULLNAME записать?
Johnmen (2003-11-20 11:28:00) [11]
>Pako (20.11.03 11:26)
>?
??
Pako (2003-11-20 11:26:00) [12]
> AS FULLNAME
?
Sergey13 (2003-11-20 11:20:00) [13]
2Pako (20.11.03 11:10) [9]
Дело конечно твое, но доделка таблицы - это 5 минут. Ну и программу переделать под это - еще час. Смотри сама - тебе жить.
Pako (2003-11-20 11:14:00) [14]
> При обращении к свойству FieldName грижда дельфи вешается
!!!!!!!
Johnmen (2003-11-20 11:12:00) [15]
AS FULLNAME
Pako (2003-11-20 11:10:00) [16]
> Sergey13 © (20.11.03 10:54) [8]
Конечно не все 60, но проблема в том что база уже наполнена и активно используется.
А как эту совокупность SURNAME||NAME||FATHERNAME AS FULLNAME
полей столбцу грида назначить?
При обращении к свойству FieldName грижда дельфи вешается
Sergey13 (2003-11-20 10:54:00) [17]
2Pako (20.11.03 10:29) [6]
И что, все 60 таблиц используют коды фамилий? Я так думаю вряд ли. Наверняка есть таблица людей, которая так организована. А остальным то это зачем?
Что за приложение, чем занимается?
Pako (2003-11-20 10:47:00) [18]
А как эту совокупность полей столбцу грида назначить?
Pako (2003-11-20 10:29:00) [19]
> Я конечно понимаю, что Ивановых много, но хранить так, ИМХО,
> геморой еще тот. Лучше переделать.
Ага, когда в базе 60 таблиц и все друг с другом таким гемороем завязаны, попробуй переделай
Sergey13 (2003-11-20 10:18:00) [20]
Я конечно понимаю, что Ивановых много, но хранить так, ИМХО, геморой еще тот. Лучше переделать.