Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2018, 15:04   #1
dalto_nik
Новичок
Джуниор
 
Регистрация: 08.10.2018
Сообщений: 5
Вопрос [Delphi] Стоит задача заменить id(клиентов,сотрудников) на фамилии

Здравствуйте.
Стоит задача заменить id(клиентов,сотрудников) на фамилии, в программе (бд, делфи)
Понимаю что это надо сделать через sql запрос.https://pp.userapi.com/c847120/v8471...i2thCa8Egg.jpg
dalto_nik вне форума Ответить с цитированием
Старый 08.10.2018, 15:46   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от dalto_nik Посмотреть сообщение
Понимаю что это надо сделать через sql запрос.
да. связываете (JOIN) с таблицей Sotrudniki по полю idSotrudnika
из таблицы Sotrudniki берёте нужные Вам данные (ФИО, например).

что не получается?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.10.2018, 16:42   #3
dalto_nik
Новичок
Джуниор
 
Регистрация: 08.10.2018
Сообщений: 5
По умолчанию

Знаю SQL на стадии знакомства.
И имею проблему в написание запроса(
Вроде бы запрос должен быть состоять вот так
Код:
Select zakaz, sotrudnik
from zakaz
INNER JOIN familiya ON idSotrudnika = familiya
;
dalto_nik вне форума Ответить с цитированием
Старый 08.10.2018, 17:17   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от dalto_nik Посмотреть сообщение
Вроде бы запрос должен быть состоять вот так
нет, это неправильно.

откройте таблицу Sotrudniki и покажите снимок содержимого этой таблицы.

а в общем случае ваш запрос должен выглядеть так:
Код:
SELECT zakaz.[КодЗаказа], sotrudniki.[Фамилия]
FROM zakaz
INNER JOIN sotrudniki on zakaz.idSotrudnika = sotrudniki.[КодСотрудника]
а вообще, наименования полей - УЖАСНЫЕ!
Мало того, что тут смесь русского и английского, так ещё некоторые поля называются латиницей, а некоторые - кириллицей.
Если это ваша разработка, то рекомендую исправить и привести всё к одному стилю.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.10.2018, 17:32   #5
dalto_nik
Новичок
Джуниор
 
Регистрация: 08.10.2018
Сообщений: 5
По умолчанию

https://pp.userapi.com/c845220/v8452...3rwgGDdIgM.jpg

Ещё понял что этот запрос выводит не совсем что мне надо.
Мне надо что бы выводилась вся таблица Zakaz, но с заменой IDсотрудника на Фамилию
dalto_nik вне форума Ответить с цитированием
Старый 08.10.2018, 17:36   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

ну так и выбирайте Zakaz.Поле1, Zakaz.Поле2, ... вместо Zakaz.ИДСотрулника sotrudniki.фамилия
p51x вне форума Ответить с цитированием
Старый 08.10.2018, 17:43   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
ну так и выбирайте Zakaz.Поле1, Zakaz.Поле2, ... вместо Zakaz.ИДСотрулника sotrudniki.фамилия
именно так!

для начала попробуйте:
Код:
SELECT sotrudniki.familiya, zakaz.*
FROM zakaz
INNER JOIN sotrudniki on zakaz.idSotrudnika = sotrudniki.[КодСотрудника]
А если так не устроит, тогда в SELECT напишите нужные поля в нужном порядке.


и почитайте книжку Мартин Грубер (Грабер) "Понимание SQL"
http://specfx.narod.ru/books/SQL_M_Gruber.pdf
или
https://www.sql.ru/docs/sql/u_sql/index.shtml

Последний раз редактировалось Serge_Bliznykov; 08.10.2018 в 17:47.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.10.2018, 18:08   #8
dalto_nik
Новичок
Джуниор
 
Регистрация: 08.10.2018
Сообщений: 5
По умолчанию

Прочту на досуге)
Уже много вынес.
Я как дурак сижу и не могу добавить
Код:
INNER JOIN klient on zakaz.idklienta = klient.[КодКлиента];
зачем-то написал
Код:
SELECT sotrudniki.familiya, klient.fam, zakaz.*
FROM zakaz
INNER JOIN sotrudniki on zakaz.idSotrudnika = sotrudniki.[КодСотрудника] 
union
SELECT sotrudniki.familiya, klient.fam, zakaz.*
FROM zakaz
INNER JOIN klient on zakaz.idklienta = klient.[КодКлиента];
Подбираю тут и учусь
dalto_nik вне форума Ответить с цитированием
Старый 08.10.2018, 18:48   #9
dalto_nik
Новичок
Джуниор
 
Регистрация: 08.10.2018
Сообщений: 5
По умолчанию

Если я хочу добавить 2-ю строчку
Код:
INNER JOIN klient on zakaz.idklienta = klient.[КодКлиента];
Как должно всё быть?
Код:
SELECT sotrudniki.familiya, klient.fam, zakaz.* 
FROM zakaz 
INNER JOIN sotrudniki on zakaz.idSotrudnika = sotrudniki.[КодСотрудника] 
INNER JOIN klient on zakaz.idklienta = klient.[КодКлиента]
или выдаст ошибку?

Не могу найти/понять можно или как в одном запросе использовать 2 соеденения

Чтоб добавить что-то к своему сообщению, используйте кнопку "Правка", а не пишите несколько сообщений подряд.

Последний раз редактировалось Вадим Мошев; 08.10.2018 в 20:06.
dalto_nik вне форума Ответить с цитированием
Старый 08.10.2018, 22:35   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от dalto_nik Посмотреть сообщение
Как должно всё быть?
Код:
SELECT sotrudniki.familiya, klient.fam, zakaz.* 
FROM zakaz 
INNER JOIN sotrudniki on zakaz.idSotrudnika = sotrudniki.[КодСотрудника] 
INNER JOIN klient on zakaz.idklienta = klient.[КодКлиента]
да, всё так.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Известны фамилии,адреса и телефоны 25-ти человек,Найти фамилии и адреса людей,чей телефон начинается с цифры 3. Расмотреть два слу salomon93 Паскаль, Turbo Pascal, PascalABC.NET 11 01.12.2011 23:36
Распечатать фамилии учеников,фамилии которых начинаются на букву В с указанием даты рождения. greenO_o Помощь студентам 0 26.05.2010 22:49