Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Как отфильтровать значение в списке

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Counsellor



Зарегистрирован: 22.09.2003
Сообщения: 32

СообщениеДобавлено: Ср Ноя 17 2004 13:18    Заголовок сообщения: Как отфильтровать значение в списке Ответить с цитатой

Есть некая база данных в двух таблицах связь по ClientCode, т.е. есть фирмы клиенты, на них есть контактные лица и есть таблица переговоров, в которой указывается кто с кем говорил.
В форме необходимо сделать что бы в списке контактных лиц, который вываливается, были значения отфильтрованные по полю ClientCode. Сейчас вываливаются все значения таблицы, т.е. абсолютно все контактные лица.

Вот код:

SELECT DISTINCT NewClientContacts.[Контактный человек]
FROM NewClients INNER JOIN NewClientContacts ON NewClients.ClientCode = NewClientContacts.ClientCode
ORDER BY NewClientContacts.[Контактный человек];
_________________
Не все так плохо, все намного ХУЖЕ!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Scaramouch



Зарегистрирован: 11.01.2004
Сообщения: 143
Откуда: Столица нашей Родины

СообщениеДобавлено: Чт Ноя 18 2004 08:46    Заголовок сообщения: Ответить с цитатой

1. Здесь принято сначала говорить, в какой субд работаешь. Сиквел все-таки различается в разных субд Smile
2. Не совсем понятно, что значит "отфильтрованные". Я так полагаю, что тебе нужно либо WHERE либо GROUP BY:) , но я могу ошибаться, так как не понял задачи.
3. Я не понял, что ты в запросе хочешь. Зачем тебе таблица NewClients, если ты просто выбираешь все из NewClientContacts???
Пожалуйста, опиши задачу полностью, например:
"нужно вывести форму, в которой есть выпадающее меню с названиями фирм и, в соответствии с выбранной фирмой, выводится список контактных лиц" или "нужно вывести всех контактных лиц, сгруппировав их по фирмам" или еще что-нибудь; "программа пишется на языке ... используя субд ..."
_________________
Ноги - это две лишние руки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Counsellor



Зарегистрирован: 22.09.2003
Сообщения: 32

СообщениеДобавлено: Чт Ноя 18 2004 09:28    Заголовок сообщения: Описание задачи Ответить с цитатой

Microsoft Access 2000:
Пишется база для работы менеджерского состава фирмы.
Есть клиенты, т.е. заводы, которым поставляется оборудование.
У клиентов есть несколько контактных лиц, у которых есть свои телефоны, факсы, e-mailы и т.д.
Соответственно две таблицы в одной заводы, в другой контактные лица. Связь по ClientCode.
После разговора менеджер заносит в третью таблицу суть переговоров с контактным лицом. Что бы автоматизировать процесс необходимо в подчиненной форме "Переговоры" (Основная "Клиент", подчиненные формы "Контакты", "Переговоры", "Оборудование") выбирать контактное лицо из поля-списка, который берется из таблицы "Клиенты". В данный момент вываливается весь список контактных лиц по всем заводам, а надо, чтобы только список лиц только по данному клиенту.
_________________
Не все так плохо, все намного ХУЖЕ!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Scaramouch



Зарегистрирован: 11.01.2004
Сообщения: 143
Откуда: Столица нашей Родины

СообщениеДобавлено: Пт Ноя 19 2004 08:47    Заголовок сообщения: Ответить с цитатой

Цитата:
В данный момент вываливается весь список контактных лиц по всем заводам, а надо, чтобы только список лиц только по данному клиенту.

Ну а как ты думал?? Посмотри на запрос, который ты привел - переводя его на русский языкSmile, получаем: "Выбрать все уникальные контакты из таблицы NewClientContacts, для которых есть соответствующая(с тем же ClientCode) запись в таблице NewClients, отсортировав полученный список по имени контактного лица".
Очевидно, что у тебя и получается список вообще всех контактных лицSmile.
Тебе надо выбирать только Контактных Лиц с определенным ClientCode, который соответствует данному клиенту, то есть
SELECT NewClientContacts.[Контактный человек] FROM NewClientContacts WHERE ClientCode=... ORDER BY NewClientContacts.[Контактный человек];
Ты же в подчиненной форме знаешь ClientCode, ведь сама эта форма создается для определенного клиента.
Или я опять неправильно понял?Smile
_________________
Ноги - это две лишние руки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Counsellor



Зарегистрирован: 22.09.2003
Сообщения: 32

СообщениеДобавлено: Пт Ноя 19 2004 10:31    Заголовок сообщения: Понял ты правильно Ответить с цитатой

Цитата:
SELECT NewClientContacts.[Контактный человек] FROM NewClientContacts WHERE ClientCode=... ORDER BY NewClientContacts.[Контактный человек];


Все правильно, только как мне получить этот ClientCode. Частично я эту проблемму решил. Но не всегда выдается список отфильтрованный по данному клиенту. Например, я сделал поиск клиентов по городам. Если просматривать клиентов подряд, то в подчиненных формах переговоров список действительно получается из тех контактных лиц которые принадлежат данному клиенту. Но если сделать поиск по клиенту, то после перехода в подчиненную форму "Переговоры", видимо ClientCode остается старый, выдается список тех контактных лиц которые принадлежат клиенту с записи которого производили поиск. Помогает только одно, если после поиска передать фокус полю "Имя клиента" и фильтр в списке делать по имени клиента, а не по ClientCode.
Пока загвоздка в том, что я не знаю где и как этот ClientCode выцепить для обработки запроса.
_________________
Не все так плохо, все намного ХУЖЕ!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Scaramouch



Зарегистрирован: 11.01.2004
Сообщения: 143
Откуда: Столица нашей Родины

СообщениеДобавлено: Пт Ноя 19 2004 14:18    Заголовок сообщения: Ответить с цитатой

Ну не проблема сделать выбор по имени клиента
SELECT NewClientContacts.[Контактный человек] FROM NewClientContacts,NewClients WHERE NewClients.ClientCode=NewClientContacts.ClientCode AND NewClients.ClientName=... ORDER BY NewClientContacts.[Контактный человек];
_________________
Ноги - это две лишние руки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Counsellor



Зарегистрирован: 22.09.2003
Сообщения: 32

СообщениеДобавлено: Пт Ноя 19 2004 14:28    Заголовок сообщения: А где взять ... Ответить с цитатой

Цитата:
NewClients.ClientName=...

Как из формы или таблицы выдрать текущее значение обозначенное точками в твоем примере? Ведь надо, что бы выводился список соответствующй именно текущему клиенту.
_________________
Не все так плохо, все намного ХУЖЕ!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Пн Дек 06 2004 14:07    Заголовок сообщения: Ответить с цитатой

я так понимаю что поиск ведётся в два этапа - сначала выбираем клиента (поиском или напрямую из списка) далее мы выводим на форму выбранного клиента, все контактные лица выбранного клиента и какие то поля диалога, что надо внести в базу. я правильно понял суть задачи?
если так, то всё елементарно - после поиска клиента (первого этапа) - мы будем иметь его ID, а имея его ID сформировать список контактных лиц клиента с указанным ID не представляет никакой сложности...
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...