У меня серьезные проблемы, у меня огромный тонкий запрос, выполнение которого занимает огромное время.На самом деле это замораживает Access, и иногда мне приходится убивать его, запрос выглядит так:
SELECT
ITEM.*,
ERA.*,
ORDR.*,
ITEM.COnTY1,
(SELECT TOP 1 New FROM MAPPING WHERE Old = ITEM.COnTY1) AS NewConTy1,
ITEM.COnValue1,
(SELECT TOP 1 KBETR FROM GEN_KUMV WHERE KNUMV = ERA.DOCCOND AND KSCHL = (SELECT TOP 1 New FROM MAPPING WHERE Old = ITEM.COnTY1)) AS NewCOnValue1
--... etc: this continues until ConTy40
FROM
GEN_ITEMS AS ITEM,
GEN_ORDERS AS ORDR,
GEN_ERASALES AS ERA
WHERE
ORDR.ORDER_NUM = ITEM.ORDER_NUM AND -- link between ITEM and ORDR
ERA.concat = ITEM.concat -- link between ERA and ITEM
Я не буду предоставлять вам схему таблиц, так как запрос работает, я хотел бы знать, есть лиспособ добавить NewConTy1 и NewConValue1, используя другой метод, чтобы сделать его более эффективным.Дело в том, что поля Con * имеют размеры от 1 до 40, поэтому я должен выровнять их вдоль (NewConTy1 рядом с ConTy1 с NewConValue1 рядом с новым ConValue2 ... и т. Д. До 40).ConTy # и ConTyValue # в ITEMS (каждый в поле) NewConty # и NewConValue # в ERA (каждый в записи )
Я действительно надеюсь, что моего объяснения достаточно, чтобы выяснитьмоя проблема, с нетерпением жду ваших сообщений, ребята
РЕДАКТИРОВАТЬ:
Игнорировать ТОП-1 в SELECTS, это потому, что текущие дампы данных, которые я имею, не точны, они будут удалены позже
РЕДАКТИРОВАТЬ 2:
Еще одна вещь, мой запрос возвращает до 230 полей также LOL
Спасибо Милуд