Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
08.05.2020, 11:01
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
Приветствую, и прошу помочь со следующей проблемкой. Есть БД некой конторы. Часть этой БД изображена на схеме (в аттаче). Как видно из схемы этот участок, по сути, является телефонной книгой, но с одним свойством - тип телефонного номера (допустим, тип 1 - стационарный номер принадлежащий конторе, тип 2 - мобильный номер принадлежащий контроле, тип 3 - личный стационарный номер, тип 4 - личный мобильный номер и т.п.) Вопрос: как одним запросом достать из БД ФИО, телефонный номер тип 1, телефонный номер тип 2. ЗЫ: возможно рациональнее как-то схемку допилить/изменить? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2020, 11:52
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon как одним запросом достать из БД ФИО, телефонный номер тип 1, телефонный номер тип 2. Вы бы, для начала, показали, как пробовали и что не получилось. Конкретно для этой задачи - запрос на трех таблицах, группировка по PersonID, First(Ф & " " & И & " " + О), Max(IF(Тип=1, Номер, Null), Max(IF(Тип=2, Номер, Null) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2020, 12:18
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
Спасибо за ответ. Пробовал многое - всего не перечислить. Но мысли крутятся в основном в следующем направлении. В запрос на выборку типа такого: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
добавить подзапрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Но что-то как-то не выходит каменный цветок... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2020, 12:55
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon, телефонный номер может принадлежать нескольким персонам? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2020, 12:59
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
alecko, нет - телефонный номер принадлежит только одному человеку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2020, 14:56
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon alecko, нет - телефонный номер принадлежит только одному человеку. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.05.2020, 00:45
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon телефонный номер принадлежит только одному человеку. зато у одной персоны может быть несколько номеров, я бы взял шире-каналов связи (номер, мэйл, вац-ап). думаю понятно, что таблицу phone2person нужно выкинуть, в таблицу Phonenumbers ввести внешний ключ с таблицей Persons с отношением 1М. Поскольку выкинули посредника запросы не будут сложными (мне кажется). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.05.2020, 11:14
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
[quot alecko#22129735] iBibigon телефонный номер принадлежит только одному человеку. ИМХО, таблица phone2person нужна. ИМХО2, вы оба не правы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.05.2020, 12:41
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon Вопрос: как одним запросом достать из БД ФИО, телефонный номер тип 1, телефонный номер тип 2. ЗЫ: возможно рациональнее как-то схемку допилить/изменить? (если создать перекрестный запрос,то он на 100% будет тем,что хочет видеть ТС) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.05.2020, 10:14
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
alecko, Спасибо за Ваш ответ. Телефон может быть привязан не к человеку, а к месту где расположен. Например, телефон установлен в лаборатории, к конкретному человеку он не привязан. Или в переговорной комнате - то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.05.2020, 10:16
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
sdku, Спасибо, попробую с перекрёстными запросами. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.05.2020, 11:03
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon, номер телефона в данном случае - это не ключ, не индекс. в таблице может быть несколько каналов с одинаковым номером, при этом сами каналы связи будут с разными персонами, что важно - это код(id) канала связи, а не то что записано в текстовом поле. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.05.2020, 14:40
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
iBibigon alecko, Спасибо за Ваш ответ. Телефон может быть привязан не к человеку, а к месту где расположен. Например, телефон установлен в лаборатории, к конкретному человеку он не привязан. Или в переговорной комнате - то же самое. Он вообщето к рабочему месту штатной единицы (единице штатного расписания компании) привязан. Либо к общему/сменному рабочему месту, типа той же совещательной студии, но там в любом случае будет ктото ответственный за этот телефон назначен (например завхоз, который отвечает за студии), т.к. связисты просто так обезличенные телефонные номера не выдают. Т.е. структура БД не шибко удобная для стационарных номеров. Сотрудник перевёлся на другую должность (на другую штатную единицу сел), с ним поехала связь работник-телефон с его прежнего места работы, а там на столе другой телефон привинчен. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.05.2020, 08:01
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
ldfanateСотрудник перевёлся на другую должность (на другую штатную единицу сел), с ним поехала связь работник-телефон с его прежнего места работы, а там на столе другой телефон привинчен. Это решается добавлением в таблицу Phone2Persons двух полей dBegin и dEnd, c периодом действия. Это позволит строить не только текущую картину распределения номеров, но и хранить прошлую историю и планы на будущее ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.05.2020, 08:27
|
|||
---|---|---|---|
Запрос из одной таблицы по двум условиям |
|||
#18+
Swa111, а толку? Всёравно связь работник-телефон останется, а значит будет путешествовать вслед за работником при его кадровых перемещениях. Если БД именно телефонный справочник компании, то там чтото типа оргструктуры просится, с иерархией подразделение-штатная должность-рабочее место(места)-работник и -рабочее место-стационарный телефон, -штатная должность-корпоративный мобильный, -работник-личные телефоны. Тогда при движении персонала стационарные телефоны по прежнему останутся привязаны к рабочему месту, корпоративные мобильные - к штатной должности, как это в реальной жизни и происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.05.2020, 21:52
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
ldfanate, Все зависит от специфики работы предприятия, например у нас имеется собственная телефонная служба, и при переходе сотрудники чаще всего переезжают вместе с телефонами, даже в случае перевода между подразделениями. Плюс ведение и поддержание в актуальном состоянии рабочих мест привязанных к штатке это все дополнительные трудозатраты. Например нам было проще автоматизировать подачу заявок на изменение контактной информации, тогда сами работники следят за актуальностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.05.2020, 19:56
|
|||
---|---|---|---|
|
|||
Запрос из одной таблицы по двум условиям |
|||
#18+
ldfanate iBibigon alecko, Спасибо за Ваш ответ. Телефон может быть привязан не к человеку, а к месту где расположен. Например, телефон установлен в лаборатории, к конкретному человеку он не привязан. Или в переговорной комнате - то же самое. Он вообщето к рабочему месту штатной единицы (единице штатного расписания компании) привязан. Либо к общему/сменному рабочему месту, типа той же совещательной студии, но там в любом случае будет ктото ответственный за этот телефон назначен (например завхоз, который отвечает за студии), т.к. связисты просто так обезличенные телефонные номера не выдают. Т.е. структура БД не шибко удобная для стационарных номеров. Сотрудник перевёлся на другую должность (на другую штатную единицу сел), с ним поехала связь работник-телефон с его прежнего места работы, а там на столе другой телефон привинчен. Сотрудник перевёлся на другую должность - номер поехал за ним (физически берёт свой телефон к которому привязан номер и топает на новое рабочее место). В данном случае поменяется связь - человек - должность. Но номер лаборатории всегда останется за лабораторией. И фиолетово кто там за него отвечает. Ну то есть, мне - фиолетово. От "связистов" пока запросов не поступало. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1610089]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 305ms |
total: | 547ms |
0 / 0 |