Я написал append запросы, которые берут записи из двух подформ и вставляют их в таблицу элементов счетов. В любом запросе результаты одинаковы и только то, что я хочу, за исключением того, что если он будет запущен снова после добавления новой записи, он создаст дубликаты уже добавленных записей. Я попытался использовать SELECT DISTINCT в предложении where для поля ID для подформы (Hours.ID), но ничего не делает для изменения результатов. Смотри ниже.Мне нужно предотвратить дубликаты в запросе на добавление доступа
Таблица счетов-фактур = LineItemID | ProjectID | Название проекта | HoursID | Следователь | Дата работы | Зарабатываемые часы | WorkCode | WorkCodeText | Заряд | Всего Расходы
Запрос захватывает поля из двух таблиц для вставки в таблицу позиций с этими аргументами:
INSERT INTO tblInvoiceLineItems (
ProjectID
,ProjectName
,Investigator
,DateWorked
,BillableHours
,Charge
,TotalCharges
,WorkCode
,[WorkCodeText]
,HoursID
)
SELECT [Project Hours].Project
,[Project Hours].ProjectName
,[Project Hours].Investigator
,[Project Hours].[Date Worked]
,[Project Hours].[Billable Hours]
,tblWorkCodes.Charge
,[Project Hours] ! [Billable Hours] * [tblWorkCodes] ! [Charge] AS [Total Service Charges]
,[Project Hours].[Work Code]
,tblWorkCodes.WorkCode
,[Project Hours].ID
FROM tblWorkCodes
INNER JOIN [Project Hours] ON tblWorkCodes.WorkCodeID = [Project Hours].[Work Code]
WHERE (
(([Project Hours].Project) = [Enter ID])
AND (
([Project Hours].ID) IN (
SELECT DISTINCT [Project Hours].ID
FROM [Project Hours]
)
)
);
Все хорошо, кроме последней части, где я пытаюсь добавить отличный выбор Hour таблицы ID, которое запускается, но не обрабатывает предполагаемый результат. Если запись добавляется в таблицу часов через подчиненную форму и выполняется запрос append, я получаю все записи не только новой записи. Я хочу добавить новую запись и «сохранить и закрыть», в результате чего я вызову запрос append, чтобы добавить только новую запись. Спасибо за выполнение этой задачи. Образец данных состоит в том, что таблица часов содержит две записи данных для каждого столбца, где идентификаторы часов - 43, а 8. другие данные не имеют значения, поэтому я не буду скучать никому со всеми данными столбца. RE-запуск запроса append ранее добавлял еще две записи с теми же данными и идентификаторами 43 и 8. С новым решением ниже я теперь не получаю никаких записей, если вставленные записи уже существуют в таблице позиций счетов-фактур.
ОК я решить, что теперь путем вставки следующего после того, как и» ("ID" <> (SELECT [tblInvoiceLineItems] [HoursID] ОТ [tblInvoiceLineItems]).));
я не сделал что мне нужна вторая инструкция SELECT для сравнения идентификаторов часов с идентификатором Hours ID в целевой таблице. Он отлично работает для этой таблицы и запроса, но не для моего другого, который похож, но я думаю, что мне не хватает леса для Если кто-то хочет взять удар, возможно, вы можете обнаружить мою ошибку.
Этот номер имеет следующую таблицу: [Расходы по проекту]. Работник, [Проект Расходы] [расходов Дата], [Расходы проекта] [Расходы Code], [Расходы проекта] .Amount [Расходы проекта] .Amount, ID
SQL:.. INSERT INTO tblInvoiceLineItems (ProjectID, ProjectName, следователь, ExpenseDate, ExpenseCode, ExpenseAmount, TotalCharges, ExpensesID) SELECT Projects.ID, Проекты. [Название проекта], [Расходы проекта]. Сотрудник, [Расходы проекта]. [Дата платежа], [Расходы по проекту]. [Код расходов] [Расходы по проекту] .Amount, [Расходы проекта] .Amount, [Расходы проекта] .ID ОТ ПРОЕКТОВ LEFT JOIN [Расходы по проекту] ON Projects.ID = [Расходы по проекту] .Project GROUP BY Projects.ID, Projects. [ Название проекта], [Расходы по проекту]. Сотрудник, [Расходы проекта]. [Дата платежа], [Расходы по проекту]. [Код расходов], [Расходы по проекту] .Амонт, [Projec t Расходы] .ID HAVING (((Projects.ID) = [введите id]) И ([Расходы проекта]. [ID] <> (SELECT [tblInvoiceLineItems]. [ExpensesID] FROM [tblInvoiceLineItems])));
Итак, я сделал аналогичную инструкцию SELECT, чтобы сравнить Идентификаторы расходов, вставленные с Идентификаторами расходов, уже вставленными в ту же таблицу элементов счетов. Однако, когда я повторно запускаю запрос append, я получаю сообщение «не более одной записи будет добавлено», но затем ничего не добавляется. Есть две записи с идентификаторами 2 и 16 для этой части счета.
Возможно, весь мой подход неэффективен для объединения записей из двух таблиц в таблицу позиций счета-фактуры, из которых я могу отображать позиции и общую сумму для счета-фактуры/отчета. Даже если у кого-то есть лучшая идея, мне очень полезно изучить эту технику добавления, если мне когда-нибудь понадобится это как единственное или лучшее решение. Спасибо всем, кто вносит свой вклад.
Довольно невозможно диагностировать, не видя: 1) Образец данных, 2) Текущие результаты, 3) Желаемые результаты. –