powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Оптимизировать запрос
10 сообщений из 10, страница 1 из 1
Оптимизировать запрос
    #39903860
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть у меня запрос со структурой как на картинке
И с вот таким по моему безумным текстом
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SELECT vers.code, MAIN.MARKA, MAIN.COMMENT, MAIN1_1.prod, Exists (SELECT MAIN1.code
FROM MAIN1 where main1.own=main1_1.code;) AS sb, MAIN1_1.qt, InStr(1,[MAIN]![COMMENT],'Установка футорк',2)+InStr(1,[MAIN]!
[COMMENT],'Установка втул',2) AS isvt, InStr(1,[MAIN]![COMMENT],'Материал декора',2) AS ismd, InStr(1,[MAIN]!
[COMMENT],'Материал шумо',2)+InStr(1,[MAIN]![COMMENT],'Материал звуко',2) AS ismsh, 

IIf(Exists (SELECT znper.* FROM znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32)); ),(SELECT mainm.tm FROM
 znper INNER JOIN MAINM ON znper.znper = MAINM.CODE
WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),Null) AS tm, IIf(Exists (SELECT znper.* FROM znper WHERE 
(((znper.codever)=vers.code) AND ((znper.codeper)=32));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = 
MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));
),Null) AS cmac, IIf(Exists (SELECT znper.*
FROM znper
WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));
),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm

FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE
WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));
),Null) AS cma, IIf(Exists (SELECT znper.*
FROM znper
WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=6));
),(SELECT znper.znper
FROM znper
WHERE (((znper.codeper)=6) AND ((znper.codever)=vers.code));),Null) AS cmal, IIf(Exists (SELECT znper.*
FROM znper
WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=33));
),(SELECT znper.znper
FROM znper
WHERE (((znper.codeper)=33) AND ((znper.codever)=vers.code));),Null) AS sda,



Многократное - раз 20 повторение одинаковых конструкций с разными кодами

Код: sql
1.
2.
3.
4.
FROM (MAIN INNER JOIN vers ON MAIN.CODE = vers.codem) INNER JOIN (MAIN1 AS MAIN1_1 INNER JOIN MAIN1 ON MAIN1_1.OWN = 
MAIN1.code) ON vers.code = MAIN1_1.codever

WHERE (((MAIN1.code)=78901));


Что удивительно для меня - он работает, и достаточно быстро - для 15 строк 1 сек.
Логика:
Табл znper - которая не включена в структуру запроса явно - хранилище переменных. код детали, код переменной, значение переменной. Требуется в запросе если переменная для детали есть - вывести ее значение, если нет - пустое поле.
При попытке поместить эту в таблицу в запрос явно и сделать JOIN - если для детали нет параметров - то она теряется, поэтому и наворотил такое...

Но вот смущает меня эта громоздкость.... может можно как-то оптимизировать или количество кода сократить?
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903862
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинка
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903878
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
И с вот таким по моему безумным текстом

полностью согласна - понять его невозможно
видимо вам надо разобраться со структурой таблиц и схемой их связи
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903908
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311
раз 20 повторение одинаковых конструкций с разными кодами

Код: sql
1.
2.
3.
4.
FROM (MAIN INNER JOIN vers ON MAIN.CODE = vers.codem) INNER JOIN (MAIN1 AS MAIN1_1 INNER JOIN MAIN1 ON MAIN1_1.OWN = 
MAIN1.code) ON vers.code = MAIN1_1.codever

WHERE (((MAIN1.code)=78901));



Сплошные INNER JOIN - так что скобки и порядок в общем ни на что (уж на результат-то во всяком случае) не влияет. А после раскручивания получаем

Код: sql
1.
2.
3.
4.
5.
FROM MAIN, vers, MAIN1 AS MAIN1_1, MAIN1
WHERE MAIN.CODE = vers.codem
  AND vers.code = MAIN1_1.codever
  AND MAIN1_1.OWN = MAIN1.code
  AND MAIN1.code=78901


Первое, что сразу бросается в глаза - два последних условия... тебе не кажется, что "пришивать" ещё одну копию таблицы только ради того, чтобы проверить, что в ней и правда есть запись с code=78901 - это немножко перебор?

А вообще полностью согласен, что
ПЕНСИОНЕРКА
надо разобраться со структурой таблиц и схемой их связи
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903913
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА
Serg197311
И с вот таким по моему безумным текстом

полностью согласна - понять его невозможно
видимо вам надо разобраться со структурой таблиц и схемой их связи

Не надо разбираться со структурой, точно .
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903919
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Первое, что сразу бросается в глаза - два последних условия... тебе не кажется, что "пришивать" ещё одну копию таблицы только ради того, чтобы проверить, что в ней и правда есть запись с code=78901 - это немножко перебор?


Она там не для этого. Она для получения спецификации сборки - всех записей подчиненных 78901
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903924
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serg197311 , может, Вы всё же опубликуете нормальный, причём хорошо отформатированный, текст настоящего запроса, а не эту синтаксически ущербную хрень? десяток точек с запятой в середине запроса - это для Аксесса более чем перебор...
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39903927
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Serg197311 , может, Вы всё же опубликуете нормальный, причём хорошо отформатированный, текст настоящего запроса, а не эту синтаксически ущербную хрень? десяток точек с запятой в середине запроса - это для Аксесса более чем перебор...

вот только отформатировал....
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
              strz = "SELECT vers.code, MAIN.MARKA, MAIN.COMMENT, MAIN1_1.prod, " _
             & " Exists (SELECT MAIN1.code FROM MAIN1 where main1.own=main1_1.code;) AS sb, MAIN1_1.qt, " _
             & " InStr(1,[MAIN]![COMMENT],'Установка футорк',2)+InStr(1,[MAIN]![COMMENT], 'Установка втул',2) AS isvt," _
             & " InStr(1,[MAIN]![COMMENT],'Материал декора',2) AS ismd, " _
             & " InStr(1,[MAIN]![COMMENT],'Материал шумо',2)+ InStr(1,[MAIN]![COMMENT],'Материал звуко',2) AS ismsh, " _
             & " IIf(Exists (SELECT znper.* FROM znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),(SELECT mainm.tm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),Null) AS tm, " _
             & " IIf(Exists (SELECT znper.* FROM znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE  WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),Null) AS cmac, " _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=32));),Null) AS cma, " _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=6 ));),(SELECT znper.znper From znper WHERE (((znper.codeper)=6) AND ((znper.codever)=vers.code));),Null) AS cmal, " _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=33));),(SELECT znper.znper From znper WHERE (((znper.codeper)=33) AND ((znper.codever)=vers.code));),Null) AS sda," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=34));),(SELECT znper.znper From znper WHERE (((znper.codeper)=34) AND ((znper.codever)=vers.code));),Null) AS sla," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=35));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=35));),Null) AS cmbc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=35));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=35));),Null) AS cmb," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=36));),(SELECT znper.znper From znper WHERE (((znper.codeper)=36) AND ((znper.codever)=vers.code));),Null) AS sdb," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=37));),(SELECT znper.znper From znper WHERE (((znper.codeper)=37) AND ((znper.codever)=vers.code));),Null) AS slb," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=38));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=38));),Null) AS cmcc, " _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=38));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=38));),Null) AS cmc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=39));),(SELECT znper.znper From znper WHERE (((znper.codeper)=39) AND ((znper.codever)=vers.code));),Null) AS sdc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=40));),(SELECT znper.znper From znper WHERE (((znper.codeper)=40) AND ((znper.codever)=vers.code));),Null) AS slc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=41));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=41));),Null) AS cmdc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=41));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=41));),Null) AS cmd," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=42));),(SELECT znper.znper From znper WHERE (((znper.codeper)=42) AND ((znper.codever)=vers.code));),Null) AS sdd," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=43));),(SELECT znper.znper From znper WHERE (((znper.codeper)=43) AND ((znper.codever)=vers.code));),Null) AS sld," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=44));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=44));),Null) AS cmec,"
 strz = strz & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=44));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=44));),Null) AS cme," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=45));),(SELECT znper.znper From znper WHERE (((znper.codeper)=45) AND ((znper.codever)=vers.code));),Null) AS sde," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=46));),(SELECT znper.znper From znper WHERE (((znper.codeper)=46) AND ((znper.codever)=vers.code));),Null) AS sle," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=47));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=47));),Null) AS cmfc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=47));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=47));),Null) AS cmf," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=48));),(SELECT znper.znper From znper WHERE (((znper.codeper)=48) AND ((znper.codever)=vers.code));),Null) AS sdf," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=49));),(SELECT znper.znper From znper WHERE (((znper.codeper)=49) AND ((znper.codever)=vers.code));),Null) AS slf," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=51));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=51));),Null) AS ssac," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=51));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=51));),Null) AS ssa," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=52));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=52));),Null) AS sstc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=52));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=52));),Null) AS sst," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=19));),(SELECT znper.znper From znper WHERE (((znper.codeper)=19) AND ((znper.codever)=vers.code));),Null) AS ss," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=26));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=26));),Null) AS krac," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=26));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=26));),Null) AS kra," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=20));),(SELECT znper.znper From znper WHERE (((znper.codeper)=20) AND ((znper.codever)=vers.code));),Null) AS soa," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=27));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=27));),Null) AS krbc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=27));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=27));),Null) AS krb," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=23));),(SELECT znper.znper From znper WHERE (((znper.codeper)=23) AND ((znper.codever)=vers.code));),Null) AS sob," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=28));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=28));),Null) AS krcc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=28));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=28));),Null) AS krc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=24));),(SELECT znper.znper From znper WHERE (((znper.codeper)=24) AND ((znper.codever)=vers.code));),Null) AS soc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=29));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=29));),Null) AS klac," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=29));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=29));),Null) AS kla," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=12));),(SELECT znper.znper From znper WHERE (((znper.codeper)=12) AND ((znper.codever)=vers.code));),Null) AS ska,"
 strz = strz & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=30));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=30));),Null) AS klbc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=30));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=30));),Null) AS klb," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=25));),(SELECT znper.znper From znper WHERE (((znper.codeper)=25) AND ((znper.codever)=vers.code));),Null) AS skb," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=53));),(SELECT mainm.code FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=53));),Null) AS gpc," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=53));),(SELECT [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art] AS nmm FROM znper INNER JOIN MAINM ON znper.znper = MAINM.CODE WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=53));),Null) AS gp," _
             & " IIf(Exists (SELECT znper.* From znper WHERE (((znper.codever)=vers.code) AND ((znper.codeper)=31));),(SELECT znper.znper From znper WHERE (((znper.codeper)=31) AND ((znper.codever)=vers.code));),Null) AS pvp" _
             & " FROM (MAIN INNER JOIN vers ON MAIN.CODE = vers.codem) INNER JOIN (MAIN1 AS MAIN1_1 INNER JOIN MAIN1 ON MAIN1_1.OWN = MAIN1.code) " _
             & " ON vers.code = MAIN1_1.codever WHERE (((MAIN1.code)=78901)); "


Структура видна хорошо - но получилась простыня....... к сожалению
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39904023
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, только на такое Access однозначно выдаст ошибку типа "Обнаружены символы за пределами инструкции SQL.".
...
Рейтинг: 0 / 0
Оптимизировать запрос
    #39904040
Я бы сделал отдельный запрос вида:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT znper.codever, 
Max(IIF(znper.codeper=32, mainm.tm, Null)) AS tm,  
Max(IIF(znper.codeper=32, mainm.code, Null)) AS cmac,  
Max(IIF(znper.codeper=32, [MAINM]![MARKA] & [MAINM]![COMMENT] & [MAINM]![add] & [MAINM]![prim] & [MAINM]![art], Null)) AS cma,  
Max(IIF(znper.codeper=6, znper.znper, Null)) AS cmal,  
Max(IIF(znper.codeper=33, znper.znper, Null)) AS sda,  
...
FROM znper LEFT JOIN MAINM ON znper.znper = MAINM.CODE
GROUP BY znper.codever

Этот запрос использовать в основном запросе.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Оптимизировать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]