Insert into + SELECT

Zyran
Дата: 12.01.2016 13:46:57
Привет Всем !
Не могу понять в чём ошибка :
SQL = " INSERT INTO OrdersAll (AgencyId, EmployeeNo, CustomerID, CurrentShipPrice, OrderDate, OrderTime, ShipDate,  ShipDetailID , RecipientID, [Recieved?], ReceivedDate , InvoiceID , InvoiceReport , InvoicePayment, DutyFee, BoxFee, TapingFee, PackingFee, " & _
" StrappingFee, DeliveryFee, Weight  ) " & _
" SELECT Orders.AgencyId, Orders.EmployeeNo, Orders.CustomerID, Orders.CurrentShipPrice, Orders.OrderDate, Orders.OrderTime, Orders.ShipDate,   Orders.ShipDetailID , Orders.RecipientID, Orders.[Recieved?], Orders.ReceivedDate , Orders.InvoiceID , Orders.InvoiceReport , Orders.InvoicePayment, Orders.DutyFee, Orders.BoxFee, Orders.TapingFee, Orders.PackingFee, " & _
" Orders.StrappingFee, Orders.DeliveryFee, Orders.Weight  " & _
" FROM Orders  IN '" & user_file & "' LEFT JOIN OrdersAll  ON  [Orders].[AgencyId]=[OrdersAll].[AgencyId]  AND  [Orders].[AgencyId]=[OrdersAll].[AgencyId]    AND   [Orders].[EmployeeNo]=[OrdersAll].[EmployeeNo]  AND " & _
" [Orders].[CustomerID]=[OrdersAll].[CustomerID] AND [Orders].[CurrentShipPrice]=[OrdersAll].[CurrentShipPrice] AND [Orders].[OrderDate] = [OrdersAll].[OrderDate] AND   [Orders].[OrderTime]= [OrdersAll].[OrderTime]  AND " & _
" [Orders].[ShipDate] = [OrdersAll].[ShipDate] AND  [Orders].[ShipDetailID] = [OrdersAll].[ShipDetailID] AND [Orders].[RecipientID] = [OrdersAll].[RecipientID] AND [Orders].[Recieved?]=[OrdersAll].[Recieved?]  AND " & _
" [Orders].[ReceivedDate] = [OrdersAll].[ReceivedDate] AND   [Orders].[InvoiceID] = [OrdersAll].[InvoiceID] AND [Orders].[InvoiceReport]= [OrdersAll].[InvoiceReport]  AND [Orders].[InvoicePayment] = [OrdersAll].[InvoicePayment] AND " & _
" [Orders].[DutyFee]=[OrdersAll].[DutyFee] AND [Orders].[BoxFee] = [OrdersAll].[BoxFee] AND [Orders].[TapingFee]= [OrdersAll].[TapingFee]  AND [Orders].[PackingFee]= [OrdersAll].[PackingFee]  AND " & _
" [Orders].[StrappingFee]=[OrdersAll].[StrappingFee] AND [Orders].[DeliveryFee]=[OrdersAll].[DeliveryFee] AND [Orders].[Weight] = [OrdersAll].[Weight]  WHERE [Orders].[OrderId] Not IN (SELECT [OrdersAll].[OrderIdAgency] FROM [OrderIdAgency])"


Синтаксическая ошибка в FROM
Добавление порядка 100000 - 200000 тис записей
Пробовал через рекордсет - очень долго
Буду благодарен за помощь
Rivkin Dmitry
Дата: 12.01.2016 14:14:44
Zyran,

Может быть название поля Weight - надо взять в квадратные скобки?


Можно полюбоаытствовать, почему LEFT JOIN OrdersAll?
А вообще, не пробовал пользоваться счетчиком, как первичным ключем? Тогда не придется писать столь ужасные джоины и работать будет быстрее.
И уж вообще, сакраментальный вопрос: а для чего нужны две табоицы - [Orders] и OrdersAll с одинаковой структурой?
Akina
Дата: 12.01.2016 14:41:12
Debug.Print SQL
Zyran
Дата: 12.01.2016 15:42:16
Rivkin Dmitry,

Таблица Orders клиентская (клиенты в разных городах) а в OrdersAll объединяются или добавляются с клиентских.
Счётчики есть в Orders, и в OrdersAll , но если Orders от разных клиентов объединить в OrdersAll то они повторяются .
Потому приходится так извращаться.
Rivkin Dmitry
Дата: 12.01.2016 15:52:03
Zyran
Rivkin Dmitry,

Таблица Orders клиентская (клиенты в разных городах) а в OrdersAll объединяются или добавляются с клиентских.
Счётчики есть в Orders, и в OrdersAll , но если Orders от разных клиентов объединить в OrdersAll то они повторяются .
Потому приходится так извращаться.

Вот-вот - изврат! Вместо того, чтобы иметь общую (уникальную) нумерацию заказов.
Akina
Дата: 12.01.2016 15:59:09
Zyran, Вы справку-то читали? про секцию FROM вообще и использование в ней IN в частности? внимательно? нет, я понимаю, что слово "все" коротенькое и вроде как незначительное - но именно оно всё и портит. Необратимо и необъезжаемо.

Так что делайте связанную таблицу и работайте с ней.
ПЕНСИОНЕРКА
Дата: 12.01.2016 16:05:26
Zyran,

не нравится линковка таблицы

FROM Orders  IN '" & user_file & "' LEFT JOIN
непоймучка
Дата: 12.01.2016 16:11:09
Zyran
Привет Всем !
Не могу понять в чём ошибка :
SQL = " ... WHERE [Orders].[OrderId] Not IN (SELECT [OrdersAll].[OrderIdAgency] FROM [OrderIdAgency])"

Синтаксическая ошибка в FROM

это как минимум
Zyran
Дата: 12.01.2016 16:20:16
непоймучка,

Я увидел опечатку и уже исправил