Я использую Visual Studio Express 2012 для front-end VB.net и базу данных Access 2010 для внутреннего сервера с DSN системы ODBC в качестве ссылки соединения.Запросить две таблицы и отобразить комбинированные результаты без дубликатов
у меня есть следующие две таблицы с их соответствующими полями:
tblRepairRequest ([ID], [ТипЗапроса], [SubmitterFirstName], [SubmitterLastName], [SubmitterIDNumber], [DateSubmitted], [TimeSubmitted] , [SupervisorFirstName], [SupervisorLastName], [SupervisorIDNumber], [PositionLocation], [ProblemDescription], [DateClosed], [TimeClosed], [Status]) Где [ID] - первичный ключ (автоматически сгенерированный номер по базе данных)
tblRepairRequstNotes ([ID], [RepairReq uestID], [NoteType], [UserFirstName], [UserLastName], [UserIDNumber], [DateNoted], [TimeNoted], [Notes]) Где [ID] - первичный ключ (автоматически сгенерированный номер по базе данных) и [RepairRequestID] - это внешний ключ (первичный ключ от tblRepairRequest)
Между двумя (tblRepairRequestNotes) отношением 1 (tblRepairRequest) к множеству (tblRepairRequestNotes).
Я создал форму со всеми полями в этих двух таблицах, выложенными на форме. Это будет использоваться для поиска в базе данных. Чем больше полей формы, в которую пользователь вводит данные, тем более изысканный поиск будет получен (используя AND с LIKE в SQL-заявлении).
Я не хочу показывать дубликаты пользователю. Так скажем, пробеги запроса, и вы получите следующие на основе критериев поиска:
-6 записей из tblRepairRequest согласованного ([ID] 1, 2, 3, 4, 5, & 6)
-10 записи из tblRepairRequestNotes соответствуют ([RepairRequestID] 1, 1, 4, 4, 4, 9, 9, 9, 15, 16)
Их следует комбинировать так, чтобы результаты были 1, 2, 3, 4, 5 , 6, 9, 15, 16. Поскольку объединенные результаты по сути являются моим основным ключом [ID] из tblRepairRequest, я хочу, чтобы пользователь видел следующие поля из tblRepairRequest в datagridview в качестве результатов поиска для каждого из [ID ] из этих комбинированных результатов:
[ID], [RequestType], [SubmitterFirstName], [SubmitterLastName], [SubmitterIDNumber], [DateSubmitted], [TimeSubmitted], [DateClosed], [TimeClosed], [Статус]
Таким образом, я может потребовать, чтобы пользователь дважды щелкнул результат, а затем я могу показать более подробную информацию в новой форме.
Мне нужна помощь с инструкциями SQL. Мне просто нужно понять, каким должен быть базовый формат заявления (ов). Я предполагаю, что будут объединения, которые для жизни меня я просто не понимаю. Или, возможно, это нужно сделать по-другому, как два отдельных запроса, а затем каким-то образом объединить эти результаты, я действительно не знаю. Я пробовал искать, и ничто не казалось правильным для того, что я пытаюсь сделать, либо это, либо я просто полностью потерян (что очень хорошо может быть). Как только у меня возникнет основная структура запроса, я могу получить все остальное. Я буду заполнять код, чтобы динамически строить оператор на основе того, какие поля данных заполняются пользователем. Я не использую источник привязки. Я делаю это с помощью кода с использованием адаптеров данных, наборов данных, представлений данных и таблиц данных, а затем я устанавливаю свойство source в своем datagridview.
Заранее спасибо
вы можете создавать запросы в доступе визуально, а затем переводить SQL в свой код; или у него также есть Мастер, который поможет их построить, пока у вас не появится представление о том, что вы хотите или с чего начать. – Plutonix
Большое спасибо @Plutonix за ваш комментарий. Я не знаю, почему я не думал об использовании построителя запросов в Access, чтобы помочь мне. Я работаю над этим сегодня и думаю, что понял это. Еще раз спасибо. – Jeremy