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

Вниз

Query   Найти похожие ветки 

 
Pako   (2003-11-20 10:04) [0]

Есть таблица, в которой помимо других полей хранятся КодФамилии, КодИмени, КодОтчества (они хранятся в surname.db, name.db, fathename.db) - в Гриде (связанном с TQuery) в одном столбце надо вывести ФИО полностью?


 
Zacho   (2003-11-20 10:07) [1]

Можно прямо в запросе сформировать такое поле, примерно так : SELECT ..., SURNAME||NAME||FATHERNAME AS FULLNAME
А можно в TQuery создать вычисляемое (Calculated) поле.


 
Наталия   (2003-11-20 10:08) [2]

select s.КодФамилии||" "||n.КодИмени||" "f.КодОтчества from surname.db s,name.db n,fathename.db f where ....
Хотя не понятно, зачем хранить это всё в разных таблицах, да ещё и с кодами, почему бы в одну не поместить? И если такая задача (получение полного имени) встречается достаточно часто, то завести ещё одно поле FULL_NAME, куда и записывть полное имя.


 
Pako   (2003-11-20 10:12) [3]


> почему бы в одну не поместить?

меня тоже этот вопрос мучает, но прогу писала не я:))


 
Zacho   (2003-11-20 10:14) [4]


> Наталия © (20.11.03 10:08) [2]
> такая задача (получение полного имени) встречается достаточно
> часто, то завести ещё одно поле FULL_NAME, куда и записывть
> полное имя.

В Парадоксе - лучше не надо. Есть большая вероятность, что FULL_NAME не (всегда) будет равно SURNAME+NAME+FATHERNAME :)


 
Sergey13   (2003-11-20 10:18) [5]

Я конечно понимаю, что Ивановых много, но хранить так, ИМХО, геморой еще тот. Лучше переделать.


 
Pako   (2003-11-20 10:29) [6]


> Я конечно понимаю, что Ивановых много, но хранить так, ИМХО,
> геморой еще тот. Лучше переделать.

Ага, когда в базе 60 таблиц и все друг с другом таким гемороем завязаны, попробуй переделай


 
Pako   (2003-11-20 10:47) [7]

А как эту совокупность полей столбцу грида назначить?


 
Sergey13   (2003-11-20 10:54) [8]

2Pako (20.11.03 10:29) [6]
И что, все 60 таблиц используют коды фамилий? Я так думаю вряд ли. Наверняка есть таблица людей, которая так организована. А остальным то это зачем?
Что за приложение, чем занимается?


 
Pako   (2003-11-20 11:10) [9]


> Sergey13 © (20.11.03 10:54) [8]

Конечно не все 60, но проблема в том что база уже наполнена и активно используется.
А как эту совокупность SURNAME||NAME||FATHERNAME AS FULLNAME
полей столбцу грида назначить?
При обращении к свойству FieldName грижда дельфи вешается


 
Johnmen   (2003-11-20 11:12) [10]

AS FULLNAME


 
Pako   (2003-11-20 11:14) [11]


> При обращении к свойству FieldName грижда дельфи вешается

!!!!!!!


 
Sergey13   (2003-11-20 11:20) [12]

2Pako (20.11.03 11:10) [9]
Дело конечно твое, но доделка таблицы - это 5 минут. Ну и программу переделать под это - еще час. Смотри сама - тебе жить.


 
Pako   (2003-11-20 11:26) [13]


> AS FULLNAME

?


 
Johnmen   (2003-11-20 11:28) [14]

>Pako (20.11.03 11:26)
>?

??


 
Pako   (2003-11-20 11:30) [15]


>
> Johnmen © (20.11.03 11:28) [14]
> >Pako (20.11.03 11:26)
> >?
>
> ??

А в OI нельзя в свойство FieldName FULLNAME записать?


 
Наталия   (2003-11-20 11:30) [16]

Pako (20.11.03 11:26) [13]
А как ты делаешь это: "полей столбцу грида назначить"? так и пишешь: AS FULLNAME? :))))


 
Pako   (2003-11-20 11:36) [17]


> А как ты делаешь это: "полей столбцу грида назначить"? так
> и пишешь: 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


 
Zacho   (2003-11-20 11:41) [18]


> Pako (20.11.03 11:36) [17]

Скорее всего не виснет, а просто очень долго выполняет такой запрос, т.к. так ты получаешь декартово произведение трех таблиц. Где условия связи таблиц ?


 
Наталия   (2003-11-20 11:42) [19]

А где в твоём запросе связь между таблицами, задаваемая в условии where? Ты же декартово произведение всех таблиц написала (о ужас).


 
Pako   (2003-11-20 12:04) [20]

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.KodPatronymic WHERE Number>4600
Так можно писать?


 
Pako   (2003-11-20 12:10) [21]

Или так
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


 
Наталия   (2003-11-20 12:17) [22]

Книжку какую-нибудь по SQL прочитай, пожалуйста...


 
Pako   (2003-11-20 12:23) [23]


> Книжку какую-нибудь по SQL прочитай, пожалуйста...

Спасибо, вы ооочень добры.


 
ЮЮ   (2003-11-21 04:20) [24]

Ну хотя бы в LocalSQL.hlp
(Number > 4600) and (S.KodSurname = F.KodSurName),



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

Форум: "Базы";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.008 c
6-36784
red
2003-10-15 02:36
2003.12.12
послать sms idhttp


3-36505
Элина
2003-11-22 17:46
2003.12.12
Проверка поля на пустоту в SQL


4-36896
Sfagnum
2003-10-15 16:08
2003.12.12
RichEdit & Paste


1-36600
Clift
2003-12-01 16:06
2003.12.12
Array


7-36855
Andriy Tysh
2003-10-04 12:58
2003.12.12
Сетевой принтер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский