powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / TecDoc только оригинальные запросы
21 сообщений из 21, страница 1 из 1
TecDoc только оригинальные запросы
    #38115279
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже полгода работаю над программой по продаже запчастей, столкнулся с проблемой поиска по моей базе данных (пока все организованно в access можно работать просто с flash не нужно разворачивать сервак) аналогов. Начал искать варианты реализации пришел к выводу, что можно все это решить при помощи tecdoc, но информации по этому поводу очень мало. В связи с чем захотелось как то все скомпоновать в одном месте. Может у кого то есть некоммерческий интерес поделиться с людьми своими наработками в этом вопросе

Оригинальные запросы TECDOC

Итак начнем запрос на вывод всех языков TECDOC
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  
SELECT 
TOF_LANGUAGES.LNG_ID, 
TOF_LANGUAGES.LNG_DES_ID, 
TOF_DESIGNATIONS.DES_ID, 
TOF_DESIGNATIONS.DES_LNG_ID, 
TOF_DESIGNATIONS.DES_TEX_ID, 
TOF_DES_TEXTS.TEX_ID, 
TOF_DES_TEXTS.TEX_TEXT 
FROM TOF_LANGUAGES 
INNER JOIN TOF_DESIGNATIONS ON TOF_DESIGNATIONS.DES_ID = TOF_LANGUAGES.LNG_DES_ID 
INNER JOIN TOF_DES_TEXTS ON TOF_DESIGNATIONS.DES_TEX_ID = TOF_DES_TEXTS.TEX_ID 
WHERE ((TOF_DESIGNATIONS.DES_LNG_ID = 16));



Запрос на вывод всех стран TECDOC
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT 
TOF_COUNTRIES.COU_ID,    //ключ
TOF_COUNTRIES.COU_CC,    //код страны
TOF_COUNTRIES.COU_DES_ID,    //(название страны) ключ ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_COUNTRIES.COU_CURRENCY_CODE,    //код валюты
TOF_DESIGNATIONS.DES_ID, 
TOF_DESIGNATIONS.DES_LNG_ID, 
TOF_DESIGNATIONS.DES_TEX_ID, 
TOF_DES_TEXTS.TEX_ID, 
TOF_DES_TEXTS.TEX_TEXT 
FROM TOF_COUNTRIES 
INNER JOIN TOF_DESIGNATIONS ON TOF_DESIGNATIONS.DES_ID = TOF_COUNTRIES.COU_DES_ID 
INNER JOIN TOF_DES_TEXTS ON TOF_DESIGNATIONS.DES_TEX_ID = TOF_DES_TEXTS.TEX_ID 
WHERE ((TOF_DESIGNATIONS.DES_LNG_ID = 16))



Запрос на список марок машин TECDOC
Код: sql
1.
2.
3.
4.
5.
SELECT 
MFA_ID, 
MFA_BRAND, 
MFA_PC_MFC 
FROM TOF_MANUFACTURERS WHERE MFA_PC_MFC = 1 ORDER BY MFA_BRAND



После выбора машины получаю марку (id1), страну (id3), язык (id) и получаю список модификаций
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT 
TOF_MODELS.MOD_ID, 
TOF_MODELS.MOD_MFA_ID, 
TOF_MODELS.MOD_CDS_ID, 
TOF_COUNTRY_DESIGNATIONS.CDS_ID, 
TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID, 
TOF_DES_TEXTS.TEX_ID, 
TOF_DES_TEXTS.TEX_TEXT 
FROM TOF_MODELS 
INNER JOIN TOF_COUNTRY_DESIGNATIONS ON TOF_COUNTRY_DESIGNATIONS.CDS_ID = TOF_MODELS.MOD_CDS_ID 
INNER JOIN TOF_DES_TEXTS ON TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID = TOF_DES_TEXTS.TEX_ID 
WHERE ((TOF_MODELS.MOD_MFA_ID = '+IntToStr(id1) + ' AND TOF_COUNTRY_DESIGNATIONS.CDS_LNG_ID = '+IntToStr(id) + ' AND MOD_PC_CTM subrange('+IntToStr(id3) + ' cast integer) = 1))
ORDER BY TOF_DES_TEXTS.TEX_TEXT



Затем зная марку могу получить модификацию
Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
SELECT 
TOF_TYPES.TYP_ID,    //ключ
TOF_DES_TEXTS.TEX_TEXT AS TEX_TEXT, //Наименование модели полное если поле TYP_MMT_CDS_ID и краткое если поле TYP_CDS_ID
TOF_TYPES.TYP_CDS_ID,  //(короткое имя типа) ключ ссылающийся на таблицу TECDOC_TOF_COUNTRY_DESIGNATIONS=>CDS_ID
TOF_DES_TEXTS9.TEX_TEXT AS TEX_TEXT9, //кузов
TOF_TYPES.TYP_MMT_CDS_ID,  //(полное имя тип) ключ ссылающийся на таблицу TECDOC_TOF_COUNTRY_DESIGNATIONS=>CDS_ID
TOF_TYPES.TYP_MOD_ID,  //(Модель типа) ключ ссылающийся на таблицу TECDOC_TOF_MODELS=>MOD_ID
TOF_TYPES.TYP_SORT,  //порядковый номер в списке «описание» для конкретной модели, выбранной из списка «последовательность».
TOF_TYPES.TYP_CTM,  //По этому параметру выбираются машины реализуемые в странах. Для СНГ нужно делать ???_CTM subrange(144 cast integer) = 1
TOF_TYPES.TYP_LA_CTM,  //?
TOF_TYPES.TYP_PCON_START,   //первые 4 цифры: год начала выпуска модели, последние две месяц начала выпуска модели.
TOF_TYPES.TYP_PCON_END,   //первые 4 цифры: год окончания выпуска модели, последние две месяц окончания выпуска модели.
TOF_TYPES.TYP_KW_FROM,    //Техническая информация/Мощность двигателя(кВ) (от)
TOF_TYPES.TYP_KW_UPTO,    //Техническая информация/Мощность двигателя(кВ) (до)
TOF_TYPES.TYP_HP_FROM,   //Техническая информация/Мощность двигателя (ЛС) (от)
TOF_TYPES.TYP_HP_UPTO,   //Техническая информация/Мощность двигателя (ЛС) (до)
TOF_TYPES.TYP_CCM,       //Техническая информация/Тех. Объем куб. см.
TOF_TYPES.TYP_CYLINDERS,    //Техническая информация/Цилиндр (Количество цилиндров)
TOF_TYPES.TYP_DOORS,      //Конструкция/Количество дверей.
TOF_TYPES.TYP_TANK,     //Конструкция/Бак
TOF_TYPES.TYP_KV_VOLTAGE_DES_ID,  //(напряжение) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_ABS_DES_ID,      //(Техническая информация/ABS) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_ASR_DES_ID,      //(Техническая информация/ASR) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_ENGINE_DES_ID,     //(Техническая информация/Вид двигателя) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_BRAKE_TYPE_DES_ID,  //(Техническая информация/Вид тормозов) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_BRAKE_SYST_DES_ID,    //(Техническая информация/Тормозная система) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_FUEL_DES_ID,       //(Техническая информация/Вид горючего) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_CATALYST_DES_ID,   //(Техническая информация/Вид катализатора) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_BODY_DES_ID,       //(Техническая информация/Вид конструкции) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_STEERING_DES_ID,   //возможно характеризует рулевое управление, в текдоке всегда пустое
TOF_TYPES.TYP_KV_STEERING_SIDE_DES_ID,  //возможно характеризует сторону, с которой находится рулевое управление, в текдоке всегда пустое
TOF_TYPES.TYP_MAX_WEIGHT,      //Конструкция/Тоннаж
TOF_TYPES.TYP_KV_MODEL_DES_ID,      //(Конструкция/Вид сборки) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_AXLE_DES_ID,      //(Конструкция/Конфигурация оси) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_CCM_TAX,         //Техническая информация/Тех. Объем куб. см.
TOF_TYPES.TYP_LITRES,           //Техническая информация/Объем двигателя в литрах
TOF_TYPES.TYP_KV_DRIVE_DES_ID,   //(Конструкция/Вид привода) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_TRANS_DES_ID,     //(Техническая информация/Привода) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_KV_FUEL_SUPPLY_DES_ID,  //(Техническая информация/Заправка горючего) ключ, ссылающийся на таблицу TECDOC_TOF_DESIGNATIONS=>DES_ID
TOF_TYPES.TYP_VALVES,             //Техническая информация/Количество клапанов на одну камеру сгорания
    //TOF_TYPES.TYP_RT_EXISTS,    //везде ноль
TOF_COUNTRY_DESIGNATIONS.CDS_ID, 
TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID, 
  {  TOF_DES_TEXTS2.TEX_TEXT AS TEX_TEXT2, 
TOF_DES_TEXTS3.TEX_TEXT AS TEX_TEXT3, 
TOF_DES_TEXTS4.TEX_TEXT AS TEX_TEXT4, 
TOF_DES_TEXTS5.TEX_TEXT AS TEX_TEXT5, 
TOF_DES_TEXTS6.TEX_TEXT AS TEX_TEXT6, 
TOF_DES_TEXTS7.TEX_TEXT AS TEX_TEXT7, 
TOF_DES_TEXTS8.TEX_TEXT AS TEX_TEXT8, 
TOF_DES_TEXTS10.TEX_TEXT AS TEX_TEXT10,  }
TOF_DES_TEXTS.TEX_ID 
FROM TOF_TYPES 
//  INNER JOIN TOF_COUNTRY_DESIGNATIONS ON TOF_COUNTRY_DESIGNATIONS.CDS_ID = TOF_TYPES.TYP_CDS_ID 
    INNER JOIN TOF_COUNTRY_DESIGNATIONS ON TOF_COUNTRY_DESIGNATIONS.CDS_ID = TOF_TYPES.TYP_MMT_CDS_ID 
    INNER JOIN TOF_DES_TEXTS ON TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID = TOF_DES_TEXTS.TEX_ID 

      { LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS2 ON TOF_DESIGNATIONS2.DES_ID = TOF_TYPES.TYP_KV_VOLTAGE_DES_ID AND TOF_DESIGNATIONS2.DES_LNG_ID = 16   //вольтаж
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS2 ON TOF_DES_TEXTS2.TEX_ID = TOF_DESIGNATIONS2.DES_TEX_ID 

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS3 ON TOF_DESIGNATIONS3.DES_ID = TOF_TYPES.TYP_KV_ABS_DES_ID AND TOF_DESIGNATIONS3.DES_LNG_ID = 16   //abs
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS3 ON TOF_DES_TEXTS3.TEX_ID = TOF_DESIGNATIONS3.DES_TEX_ID 

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS4 ON TOF_DESIGNATIONS4.DES_ID = TOF_TYPES.TYP_KV_ASR_DES_ID AND TOF_DESIGNATIONS4.DES_LNG_ID = 16   //asr
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS4 ON TOF_DES_TEXTS4.TEX_ID = TOF_DESIGNATIONS4.DES_TEX_ID 

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS5 ON TOF_DESIGNATIONS5.DES_ID = TOF_TYPES.TYP_KV_ENGINE_DES_ID AND TOF_DESIGNATIONS5.DES_LNG_ID = 16   //тормоза
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS5 ON TOF_DES_TEXTS5.TEX_ID = TOF_DESIGNATIONS5.DES_TEX_ID 

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS6 ON TOF_DESIGNATIONS6.DES_ID = TOF_TYPES.TYP_KV_BRAKE_SYST_DES_ID AND TOF_DESIGNATIONS6.DES_LNG_ID = 16   //тормозная система
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS6 ON TOF_DES_TEXTS6.TEX_ID = TOF_DESIGNATIONS6.DES_TEX_ID 

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS7 ON TOF_DESIGNATIONS7.DES_ID = TOF_TYPES.TYP_KV_FUEL_DES_ID AND TOF_DESIGNATIONS7.DES_LNG_ID = 16   //вид топлива
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS7 ON TOF_DES_TEXTS7.TEX_ID = TOF_DESIGNATIONS7.DES_TEX_ID 

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS8 ON TOF_DESIGNATIONS8.DES_ID = TOF_TYPES.TYP_KV_CATALYST_DES_ID AND TOF_DESIGNATIONS8.DES_LNG_ID = 16   //вид катализатора
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS8 ON TOF_DES_TEXTS8.TEX_ID = TOF_DESIGNATIONS8.DES_TEX_ID    }

        LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS9 ON TOF_DESIGNATIONS9.DES_ID = TOF_TYPES.TYP_KV_BODY_DES_ID AND TOF_DESIGNATIONS9.DES_LNG_ID = 16   //вид конструкции
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS9 ON TOF_DES_TEXTS9.TEX_ID = TOF_DESIGNATIONS9.DES_TEX_ID 

      { LEFT JOIN TOF_DESIGNATIONS TOF_DESIGNATIONS10 ON TOF_DESIGNATIONS10.DES_ID = TOF_TYPES.TYP_KV_FUEL_SUPPLY_DES_ID AND TOF_DESIGNATIONS10.DES_LNG_ID = 16    //запправка горючего
        LEFT JOIN TOF_DES_TEXTS TOF_DES_TEXTS10 ON TOF_DES_TEXTS10.TEX_ID = TOF_DESIGNATIONS10.DES_TEX_ID   }

WHERE TOF_TYPES.TYP_MOD_ID = '+IntToStr(id1) + '
AND TOF_COUNTRY_DESIGNATIONS.CDS_LNG_ID = '+IntToStr(id)+ '
AND TOF_TYPES.TYP_CTM subrange('+IntToStr(id3) + ' cast integer) = 1 
ORDER BY TOF_TYPES.TYP_SORT



Далее строим дерево
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
select str_id,    //запрос на построение дерева запчастей
str_level, 
str_sort, 
0 expand, 
tex_text, 
str_id_parent, 
0 color 
from tof_search_tree 
join tof_designations 
on str_des_id nljoin des_id and 
des_lng_id = 16   //выбран русский нужно переделать что бы можно было изменять
join tof_des_texts 
on des_tex_id nljoin tex_id 
where 1 < 3 and 
str_type = 1 and 
str_level > 1 and 
(select nvl(max(lgs_ga_id), 0) 
from tof_link_ga_str 
join tof_link_la_typ 
on lgs_ga_id nljoin lat_ga_id and 
lat_typ_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +' 
where lgs_str_id = str_id and 
(-1 < 0 or lgs_ga_id in (-1))) > 0  



Далее выводим по клику на дереве ветке или узле перечень деталей и их производителей
Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
select distinct lat_sup_id sup_id, 
nvl(sup_cou.sup_brand, sup_null.sup_brand) supplier, 
ga_nr, 
tex_text masterbez, 
''column'' col, 
nvl(trf_equal.trf_abc, trf_null.trf_abc) trf_abc, 
nvl(trf_equal.trf_sort, trf_null.trf_sort) trf_sort, 
1 firstgr, 
1 lastgr, 
0 special_filter 
from tof_link_la_typ 
join tof_generic_articles 
on ga_id = lat_ga_id 
join tof_designations 
on des_id = ga_des_id and 
des_lng_id = 16 
join tof_des_texts 
on tex_id = des_tex_id 
left outer join tof_suppliers sup_cou 
on sup_cou.sup_id = lat_sup_id and 
sup_cou.sup_cou_id = 186 
left outer join tof_suppliers sup_null 
on sup_null.sup_id = lat_sup_id and 
sup_null.sup_cou_id is null 
left outer join tof_retail_filters trf_equal 
on trf_equal.trf_ga_id = ga_id and 
trf_equal.trf_sup_id = lat_sup_id and 
trf_equal.trf_tsd_id IS NULL 
left outer join tof_retail_filters trf_null 
on trf_null.trf_ga_id is null and 
trf_null.trf_sup_id = lat_sup_id and 
trf_null.trf_tsd_id IS NULL 
where lat_typ_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +' 
and lat_ctm subrange(186 cast integer) = 1 
and 1 < 3 and 
1 = 1 and 
(-1 < 0 or lat_ga_id in (-1)) and 
lat_ga_id in ( select lgs_ga_id 
from tof_link_ga_str 
where lgs_str_id = ' + IntToStr(ID) + ') 

UNION 
select distinct lam_sup_id sup_id, 
nvl(sup_cou.sup_brand, sup_null.sup_brand) supplier, 
ga_nr, 
tex_text masterbez, 
''column'' col, 
nvl(trf_equal.trf_abc, trf_null.trf_abc) trf_abc, 
nvl(trf_equal.trf_sort, trf_null.trf_sort) trf_sort, 
1 firstgr, 
1 lastgr, 
0 special_filter 
from tof_link_la_mrk 
join tof_generic_articles 
on ga_id = lam_ga_id 
join tof_designations 
on des_id = ga_des_id and 
des_lng_id = 16 
join tof_des_texts 
on tex_id = des_tex_id 
left outer join tof_suppliers sup_cou 
on sup_cou.sup_id = lam_sup_id and 
sup_cou.sup_cou_id = 186 
left outer join tof_suppliers sup_null 
on sup_null.sup_id = lam_sup_id and 
sup_null.sup_cou_id is null 
left outer join tof_retail_filters trf_equal 
on trf_equal.trf_ga_id = ga_id and 
trf_equal.trf_sup_id = lam_sup_id and 
trf_equal.trf_tsd_id IS NULL 
left outer join tof_retail_filters trf_null 
on trf_null.trf_ga_id is null and 
trf_null.trf_sup_id = lam_sup_id and 
trf_null.trf_tsd_id IS NULL 
where lam_mrk_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +' 
and lam_ctm subrange(186 cast integer) = 1 
and 1 = 2 and 
1 = 6 and 
(-1 < 0 or lam_ga_id in (-1)) and 
lam_ga_id in ( select lgs_ga_id 
from tof_link_ga_str 
where lgs_str_id = ' + IntToStr(ID) + ') 

UNION 
select distinct lae_sup_id sup_id, 
nvl(sup_cou.sup_brand, sup_null.sup_brand) supplier, 
ga_nr, 
tex_text masterbez, 
''column'' col, 
nvl(trf_equal.trf_abc, trf_null.trf_abc) trf_abc, 
nvl(trf_equal.trf_sort, trf_null.trf_sort) trf_sort, 
1 firstgr, 
1 lastgr, 
0 special_filter 
from tof_link_la_eng 
join tof_generic_articles 
on ga_id = lae_ga_id 
join tof_designations 
on des_id = ga_des_id and 
des_lng_id = 16 
join tof_des_texts  
on tex_id = des_tex_id 
left outer join tof_suppliers sup_cou 
on sup_cou.sup_id = lae_sup_id and 
sup_cou.sup_cou_id = 186 
left outer join tof_suppliers sup_null 
on sup_null.sup_id = lae_sup_id and 
sup_null.sup_cou_id is null 
left outer join tof_retail_filters trf_equal 
on trf_equal.trf_ga_id = ga_id and 
trf_equal.trf_sup_id = lae_sup_id and 
trf_equal.trf_tsd_id IS NULL 
left outer join tof_retail_filters trf_null 
on trf_null.trf_ga_id is null and 
trf_null.trf_sup_id = lae_sup_id and 
trf_null.trf_tsd_id IS NULL 
where lae_eng_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +' 
and lae_ctm subrange(186 cast integer) = 1 
and 1 = 3 and 
(-1 < 0 or lae_ga_id in (-1)) and 
lae_ga_id in ( select lgs_ga_id 
from tof_link_ga_str 
where lgs_str_id = ' + IntToStr(ID) + ') 

UNION 
select distinct laa_sup_id sup_id, 
nvl(sup_cou.sup_brand, sup_null.sup_brand) supplier, 
ga_nr, 
tex_text masterbez, 
''column'' col, 
nvl(trf_equal.trf_abc, trf_null.trf_abc) trf_abc, 
nvl(trf_equal.trf_sort, trf_null.trf_sort) trf_sort, 
1 firstgr, 
1 lastgr, 
0 special_filter 
from tof_link_la_axl 
join tof_generic_articles 
on ga_id = laa_ga_id 
join tof_designations 
on des_id = ga_des_id and 
des_lng_id = 16 
join tof_des_texts 
on tex_id = des_tex_id 
left outer join tof_suppliers sup_cou 
on sup_cou.sup_id = laa_sup_id and 
sup_cou.sup_cou_id = 186 
left outer join tof_suppliers sup_null 
on sup_null.sup_id = laa_sup_id and 
sup_null.sup_cou_id is null 
left outer join tof_retail_filters trf_equal 
on trf_equal.trf_ga_id = ga_id and 
trf_equal.trf_sup_id = laa_sup_id and 
trf_equal.trf_tsd_id IS NULL 
left outer join tof_retail_filters trf_null 
on trf_null.trf_ga_id is null and 
trf_null.trf_sup_id = laa_sup_id and 
trf_null.trf_tsd_id IS NULL 
where laa_axl_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +' 
and laa_ctm subrange(186 cast integer) = 1 
and 1 = 5 and 
(-1 < 0 or laa_ga_id in (-1)) and 
laa_ga_id in ( select lgs_ga_id 
from tof_link_ga_str 
where lgs_str_id = ' + IntToStr(ID) + ') 

UNION 
select distinct art_sup_id sup_id, 
nvl(sup_cou.sup_brand, sup_null.sup_brand) supplier, 
ga_nr, 
tex_text masterbez, 
''column'' col, 
nvl(trf_equal.trf_abc, trf_null.trf_abc) trf_abc, 
nvl(trf_equal.trf_sort, trf_null.trf_sort) trf_sort, 
1 firstgr, 
1 lastgr, 
0 special_filter 
from tof_generic_articles 
join tof_designations 
on des_id = ga_des_id and 
des_lng_id = 16 
join tof_des_texts 
on tex_id = des_tex_id 
join tof_link_art_ga 
on lag_ga_id = ga_id 
join tof_articles 
on art_id = lag_art_id and 
art_ctm subrange(186 cast integer) = 1 
left outer join tof_suppliers sup_cou 
on sup_cou.sup_id = art_sup_id and 
sup_cou.sup_cou_id = 186 
left outer join tof_suppliers sup_null 
on sup_null.sup_id = art_sup_id and 
sup_null.sup_cou_id is null 
left outer join tof_retail_filters trf_equal 
on trf_equal.trf_ga_id = ga_id and 
trf_equal.trf_sup_id = art_sup_id and 
trf_equal.trf_tsd_id IS NULL 
left outer join tof_retail_filters trf_null 
on trf_null.trf_ga_id is null and 
trf_null.trf_sup_id = art_sup_id and 
trf_null.trf_tsd_id IS NULL 
where 1 = 4 and 
ga_universal = 1 and 
(-1 < 0 or ga_id in (-1)) and 
ga_id in ( select lgs_ga_id 
from tof_link_ga_str 
where lgs_str_id = ' + IntToStr(ID) + ') 
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38115324
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Далее пользователь выбирает деталь по конкретному производителю и можно уже что то вывести на экран
Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
select distinct art_id, 
art_article_nr, 
nvl(art_tex.tex_text, art_tex_uni.tex_text) articledes, 
ga_id, 
ga_tex.tex_text gades, 
ga_tex.tex_text||'' (''||ga_assembly_tex.tex_text||'')'' ga_assembly, 
la_id, 
lat_sort sort, 
lat_sup_id bra_id, 
nvl(sup_cou.sup_brand, sup_null.sup_brand) bra_brand, 
COALESCE( (select sba_quantity 
from tof_shopping_baskets 
where sba_art_id = art_id and 
sba_uss_id = 1), 
0) basket, 
COALESCE( (select sli_art_id 
from tof_shopping_lists 
where sli_art_id = art_id and 
sli_uss_id = 1), 
0) list, 
NVL( (select 1 
from dual 
where exists (select 1 
from tof_article_user_notes 
where aun_art_id = art_id and 
aun_uss_id = 1 and 
aun_kind = ''G'') or 
exists (select 1 
from tof_article_user_notes 
where aun_art_id = art_id and 
aun_uss_id = 1 and 
aun_kind = ''S'' and 
aun_typ_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +')), 0) notice, 
acs_kv_status art_kv_status, 
art_replacement, 
nvl(sup_cou.sup_is_hess, sup_null.sup_is_hess) is_hess 
from tof_link_la_typ 
join tof_generic_articles 
on lat_ga_id nljoin ga_id 
join tof_designations ga_des 
on ga_des_id nljoin ga_des.des_id and 
16 nljoin ga_des.des_lng_id 
join tof_des_texts ga_tex 
on ga_des.des_tex_id nljoin ga_tex.tex_id 
left outer join tof_designations ga_assembly_des 
on ga_des_id_assembly nljoin ga_assembly_des.des_id and 
16 nljoin ga_assembly_des.des_lng_id 
left outer join tof_des_texts ga_assembly_tex 
on ga_assembly_des.des_tex_id nljoin ga_assembly_tex.tex_id 
join tof_link_art 
on lat_la_id nljoin la_id 
join tof_articles 
on la_art_id nljoin art_id and 
art_ctm subrange(186 cast integer) = 1 
left outer join tof_designations art_des 
on art_des_id nljoin art_des.des_id  and 
16 nljoin art_des.des_lng_id 
left outer join tof_des_texts art_tex 
on art_des.des_tex_id nljoin art_tex.tex_id 
left outer join tof_designations art_des_uni 
on art_des_id nljoin art_des_uni.des_id and 
255 nljoin art_des_uni.des_lng_id 
left outer join tof_des_texts art_tex_uni 
on art_des_uni.des_tex_id nljoin art_tex_uni.tex_id 
left outer join tof_suppliers sup_cou 
on lat_sup_id nljoin sup_cou.sup_id and 
sup_cou.sup_cou_id = 186 
left outer join tof_suppliers sup_null 
on lat_sup_id nljoin sup_null.sup_id 
and sup_null.sup_cou_id is null 
left outer join tof_art_country_specifics 
on art_id = acs_art_id 
and 1 = acs_ctm subrange(186 cast integer) 
where lat_ga_id in ('+ Base.TOF_GENERIC_ARTICLES.FieldByName('ga_nr').AsString +') and 
lat_ctm subrange(186 cast integer) = 1 and 
lat_typ_id = '+ Base.TOF_TYPES.FieldByName('TYP_ID').AsString +' and 
lat_sup_id in ('+ Base.TOF_GENERIC_ARTICLES.FieldByName('sup_id').AsString +') and 
(1 = 1) 
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38115335
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Далее уже для выбранной модификации детали можно вывести ее описание применяемость габаритные размеры и т.д.

Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
select NULL article_id, 
lac_la_id link_id, 
cri_tex.tex_text crit_designation, 
nvl(lac_value, value_tex.tex_text) crit_value, 
nvl('' ''||unit_tex.tex_text, '''') crit_unit, 
2 criteria_art, 
cri_id, 
lac_sort sort, 
lac_value, 
cri_is_interval, 
cri_successor, 
la_ga_id ga_id 
from tof_la_criteria 
join tof_link_art 
on la_id = lac_la_id 
join tof_criteria 
on cri_id = lac_cri_id 
left outer join tof_designations cri_des 
on cri_des.des_id = cri_short_des_id and 
cri_des.des_lng_id = 16 
left outer join tof_des_texts cri_tex 
on cri_tex.tex_id = cri_des.des_tex_id 
left outer join tof_designations value_des 
on value_des.des_id = lac_kv_des_id and 
value_des.des_lng_id = 16 
left outer join tof_des_texts value_tex 
on value_tex.tex_id = value_des.des_tex_id 
left outer join tof_designations unit_des 
on unit_des.des_id = cri_unit_des_id and 
unit_des.des_lng_id = 16 
left outer join tof_des_texts unit_tex 
on unit_tex.tex_id = unit_des.des_tex_id 
where lac_la_id in ('+Base.TOF_MODELS.FieldByName('LA_ID').AsString+') and 
lac_display = 1 and 
lac_ctm subrange(186 cast integer) = 1 
UNION ALL 
select acr_art_id article_id, 
null link_id, 
cri_tex.tex_text crit_designation, 
nvl(acr_value, value_tex.tex_text) crit_value, 
nvl('' ''||unit_tex.tex_text, '''') crit_unit, 
1 criteria_art, 
cri_id, 
acr_sort sort, 
acr_value, 
cri_is_interval, 
cri_successor, 
acr_ga_id ga_id 
from tof_article_criteria 
join tof_criteria 
on acr_cri_id = cri_id 
left outer join tof_designations cri_des 
on cri_des.des_id = cri_short_des_id and 
cri_des.des_lng_id = 16 
left outer join tof_des_texts cri_tex 
on cri_tex.tex_id = cri_des.des_tex_id 
left outer join tof_designations value_des 
on value_des.des_id = acr_kv_des_id and 
value_des.des_lng_id = 16 
left outer join tof_des_texts value_tex 
on value_tex.tex_id = value_des.des_tex_id 
left outer join tof_designations unit_des 
on unit_des.des_id = cri_unit_des_id and 
unit_des.des_lng_id = 16 
left outer join tof_des_texts unit_tex 
on unit_tex.tex_id = unit_des.des_tex_id 
where acr_art_id in ('+Base.TOF_MODELS.FieldByName('ART_ID').AsString+') and 
acr_ctm subrange(186 cast integer) = 1 and 
acr_display = 1 
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38115365
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну и самое интересное конструкционные номера

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT   //вывод конструкционных номеров
TOF_ART_LOOKUP.ARL_KIND, 
TOF_BRANDS.BRA_BRAND, 
TOF_ART_LOOKUP.ARL_DISPLAY_NR 
FROM TOF_ART_LOOKUP 
INNER JOIN TOF_BRANDS ON TOF_BRANDS.BRA_ID = TOF_ART_LOOKUP.ARL_BRA_ID 
WHERE TOF_ART_LOOKUP.ARL_ART_ID = ' + Base.TOF_MODELS.FieldByName('ART_ID').AsString);
AND TOF_ART_LOOKUP.ARL_KIND = '+'''3''
ORDER BY BRA_BRAND, ARL_DISPLAY_NR 



У меня кое где есть лишние символы, запросы скопированы из действующей программы на delphi
подключаюсь к tecdoc напрямую через TADO использую TADOConection в связке с TADOQuery + TDataSource
Все работает достаточно быстро можно сравнивать с оригиналом.
Переносил программу на компы с установленным tecdoc разных версий как более старых так и более новых
разница только в выводимой информации для меня не существенно.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38115778
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас работаю над поиском аналогов.
У меня есть сервисный код из моей программы(не TECDOC) например OC47 фильтр Kneht
мне нужно вывести перечень аналогов из tecdoc по этому фильтру
запрос

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
ART.ART_ARTICLE_NR, 
SUP.SUP_BRAND, 
TEX.TEX_TEXT 
FROM TOF_ART_LOOKUP ARL 
INNER JOIN TOF_ARTICLES ART ON (ART.ART_ID = ARL.ARL_ART_ID) 
INNER JOIN TOF_SUPPLIERS SUP ON (SUP.SUP_ID = ART.ART_SUP_ID) 
INNER JOIN TOF_DESIGNATIONS DES ON (DES.DES_ID = ART.ART_COMPLETE_DES_ID) 
INNER JOIN TOF_DES_TEXTS TEX ON (DES.DES_TEX_ID = TEX.TEX_ID) 
WHERE DES.DES_LNG_ID = 16 AND ARL.ARL_SEARCH_NUMBER = '+ QuotedStr(Base.All.FieldByName('kod_servise').AsString) +' ORDER BY ARL_BRA_ID



Выполняется в зависимости от машины от 1 до 1,5 мин что в моем случае не как не устраивает.
Если кто то отлавливал оригинальные запросы прошу выложить оригинальный запрос tecdoc на поиск аналогов.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38115969
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivaha007
Код: sql
1.
2.
... and 
(1 = 1)



ivaha007
Код: sql
1.
where 1 < 3



:)
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38116832
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы собираетесь делать базу данных (систему) именно для оптовой и розничной торговли автозапчастями, а не стол заказов (типа Exist.ru), то, как разработчик систем торговли автозапчастями (одна из которых более 10 лет уже находится в эксплуатации у десятков пользователей), могу дать пару толковых советов:

1. Забыть Access и т.п. игрушечные СУБД, использовать только полноценные СУБД (MS,Oracle,DB2,SyBase и т.п.)
2. Забыть монструозный TecDoc и создавать свою базу данных, ориентируясь на основных реальных поставщиков,
используя (при крайней необходимости) данные из TecDoc только частично.

Если же речь идет о столе заказов (минимальный собственный склад и максимальные данные о складах множества поставщиков (продавцов) - по сути, это аналог Exist.ru), то советую иметь в виду, что в TecDoc отсутствует значительное число производителей (паковщиков) и, таким образом, его реальная ценность для системы оптовой торговли является весьма сомнительной...

P.S. TecDoc широко используется многими клиентами для индивидуального подбора запчастей. И только.
Для оптовой торговли он совершенно не нужен.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38118630
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитайте внимательнее тему сообщения я предложил людям делиться опытом и искать интересные пути решения по работе приложений с TECDOC.

Вы пишите:
1. Забыть Access
2. Забыть монструозный TecDoc
К чему это здесь?

Так же извините я не просил рекомендации по использованию СУБД.
Если у Вас есть опыт разработки, тогда выкладывайте исходники, запросы и т.д.
Я воспринимаю критику когда она конструктивная, вы не знаете не специфики использования, ни цели разработки а начинаете мне советовать полноценные СУБД.
Скажу больше я владелец магазина и пишу софт для себя если мне понадобиться использовать его в сети, я элементарно переведу все на MySQL, не понимаю в чем тут проблема?

И еще один вопрос что это за полноценная СУБД: SyBase насколько я знаю это название компании разрабатывающей (ПО) у них есть в разработках СУБД но оно по другому называется.
http://www.sql.ru/forum/actualthread.aspx?tid=826978
Извините.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38118644
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Garya,
сегодня пробовал использовать вашу наводку, большое спасибо за нее.
К сожалению большого прироста производительности не получил.
Вы можете выложить запрос целиком?
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38118818
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivaha007,

Для того, чтобы выложить запрос целиком, нужно иметь БД с таблицами под рукой. А у меня под рукой ее нет.
И, кроме того, хорошо себе представлять, что именно в каких именно полях этих таблиц содержится. А у меня такого представления нет. Я лишь вижу, что запросы очень сырые. Вижу это по тому, что в запросах присутствуют совершенно бесполезные конструкции, которые только утяжеляют запрос (к примеру, условия, которые выполняются всегда, либо не выполняются никогда). К примеру, такие конструкции "and
(-1 < 0 or lae_ga_id in (-1))" - откуда они? Поскольку -1 < 0 всегда, то остальная часть, которая следует за "or" только напрасно расходует вычислительные ресурсы. Если наприсать "lae_ga_id = -1", либо "lae_ga_id in (-1)", то с точки зрения реляционной алгебры результат будет одним и тем же, однако с точки зрения ядра, которое выполняет запрос, план выполнения запроса может получиться совершенно разным. Вообще, конструкцию in нужно использовать с большой осторожностью и только в том случае, если нет возможности преобразовать запрос в конструкцию с inner join либо со сравнением с константой.

Включать в запрос конструкцию "distinct" тоже нужно с большой осторожностью и только в том случае, когда без нее обойтись невозможно, потому что ее использование приводит к неявному "group by" по всему перечню возвращаемых полей, то есть, к значительному утяжелению запроса. Использовать ее нужно только в том случае, когда запрос действительно может вернуть более одной записи с идентичными значениями всех перечисленных полей, а этого необходимо избежать. Проверка на уникальность всего содержимого полей в возвращаемых результатах - дорогостоящая, а нужна ли она или нет, я точно не знаю, поскольку не знаю содержимое БД и структуру полей, подозреваю, что далеко не во всех используемых случаях.
Использовать конструкцию "UNION" нужно тоже с умом. Потому что просто "UNION" приводит к сверке всей совокупности возвращаемых строк в объединяемых конструкцией UNION запросах, то есть, к дорогостоящей операции поиска полностью идентичных записей (как и с конструкцией "distinct"). Если заведомо известно, что объединяемые множества записей гарантированно не содержат полностью идентичных наборов значений (строк), вместо конструкции "UNION" лучше использовать конструкцию "UNION ALL", которая просто добавляет один набор записей к другому без дорогостоящей операции устранения полностью идентичных записей в объединяемых наборах.
Вот такая конструкция " or exists (select 1 from tof_article_user_no ", включенная в условие WHERE, меня просто убила наповал. Она может вызвать выполнение подзапроса ДЛЯ ВСЕХ ЗАПИСЕЙ таблицы, по которой проверяется условие WHERE, как тех, по которые удовлетворяют прочим условиям, так и тем, которые не удовлетворяют. Очень неакуратная конструкция, я бы ее переписал. Но для того, чтобы переписать и не ошибиться, нужно знать состав полей и иметь БД под рукой. Есть еще несколько мест в запросах, которые вызывают сомнения, но обсуждать их нужно предметно.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38130372
ivaha007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привожу оригинальный запрос на поиск аналогов, в таком контексте производительность увеличилась в 10 раз.

Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
select distinct art_id,
ga_id,
ga_tex.tex_text gades,
ga_assembly_tex.tex_text ga_assembly,
SUP.SUP_BRAND,
tof_articles.ART_ARTICLE_NR
from tof_art_lookup
join tof_articles
on arl_art_id nljoin art_id and
1 nljoin art_ctm subrange(186 cast integer)
JOIN TOF_SUPPLIERS SUP ON (SUP.SUP_ID = tof_articles.ART_SUP_ID)
JOIN TOF_DESIGNATIONS DES ON (DES.DES_ID = tof_articles.ART_COMPLETE_DES_ID)
JOIN TOF_DES_TEXTS TEX ON (DES.DES_TEX_ID = TEX.TEX_ID)
join tof_link_art_ga
on lag_art_id = art_id
join tof_generic_articles
on ga_id = lag_ga_id and
((ga_universal = 0 and
ga_id = ga_nr) or
ga_universal = 1)
join tof_designations ga_des
on ga_des_id nljoin ga_des.des_id and
ga_des.des_lng_id = 16
join tof_des_texts ga_tex
on ga_des.des_tex_id nljoin ga_tex.tex_id
left outer join tof_designations ga_assembly_des
on ga_des_id_assembly nljoin ga_assembly_des.des_id and
16 nljoin ga_assembly_des.des_lng_id
left outer join tof_des_texts ga_assembly_tex
on ga_assembly_des.des_tex_id nljoin ga_assembly_tex.tex_id
where arl_ctm subrange(186 cast integer) = 1 and
arl_kind in (''1'',''2'',''3'',''4'',''5'') and
((0 = 1 and arl_search_number like '+ QuotedStr(Base.All.FieldByName('kod_servise').AsString) +' ) or ( 0 = 0 and arl_search_number = '+ QuotedStr(Base.All.FieldByName('kod_servise').AsString) +' ) ) and
(-1 = -1  or  ga_id = -1 )

UNION ALL   
select distinct art_id,
ga_id,
ga_tex.tex_text gades,
ga_assembly_tex.tex_text ga_assembly,
SUP.SUP_BRAND,
tof_articles.ART_ARTICLE_NR
from tof_tecsel_dealers
join tof_tecsel_prices
on tsd_id nljoin tsp_tsd_id and
tsp_ctm subrange(186 cast integer) = 1 and
( (0 = 1 and tsp_search_number like '+ QuotedStr(Base.All.FieldByName('kod_servise').AsString) +' ) or ( 0 = 0 and  tsp_search_number = '+ QuotedStr(Base.All.FieldByName('kod_servise').AsString) +' ) )
join tof_articles
on tsp_art_id nljoin art_id and
1 nljoin art_ctm subrange(186 cast integer)
JOIN TOF_SUPPLIERS SUP ON (SUP.SUP_ID = tof_articles.ART_SUP_ID)
JOIN TOF_DESIGNATIONS DES ON (DES.DES_ID = tof_articles.ART_COMPLETE_DES_ID)
JOIN TOF_DES_TEXTS TEX ON (DES.DES_TEX_ID = TEX.TEX_ID)
join tof_link_art_ga
on lag_art_id = art_id
join tof_generic_articles
on ga_id = lag_ga_id and
((ga_universal = 0 and
ga_id = ga_nr) or
ga_universal = 1)
join tof_designations ga_des
on ga_des_id nljoin ga_des.des_id and
ga_des.des_lng_id = 16
join tof_des_texts ga_tex
on ga_des.des_tex_id nljoin ga_tex.tex_id
left outer join tof_designations ga_assembly_des
on ga_des_id_assembly nljoin ga_assembly_des.des_id and
16 nljoin ga_assembly_des.des_lng_id
left outer join tof_des_texts ga_assembly_tex
on ga_assembly_des.des_tex_id nljoin ga_assembly_tex.tex_id
where tsd_id = -1 and
(-1 = -1  or  ga_id = -1 )
order by ga_id
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
TecDoc только оригинальные запросы
    #38694994
Scor66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivaha007,
Помогите пожалуйста!
Не могу нигде в описании найти, как ограничить выборку в запросе!
Надо получить "Первые 10" записей (не важно сколько - но не всю таблицу)!
Не работает ни одна из возможных конструкций, которые пробовал:
Select top(10), Select top 10, Select limit 10, select limit(10), select first(10), select 10,
Так же пробовал все это размещать уже после полей перед Were, перед From
Всегда выдает ошибку! В описании найти ничего не смог!
Но многие пишут, что сам Тек док постоянно это использует - значит можно! НО КАК? Помогите!
Прочитать ВСЕ таблицы без ограничения занимает кучу времени, а мне только шапки нужны по сути и посмотреть на первые строки.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38833129
Ivanich1987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Помогите разобраться где берутся переводы названий характеристик автомобилей
Есть таблица TOF_TYPES
в которой есть поля
TYP_KV_VOLTAGE_DES_ ID - (напряжение) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_ABS_DES_ID (Техническая информация/ABS) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_ASR_DES_ID (Техническая информация/ASR) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_ENGINE_DES_ID - (Техническая информация/Вид двигателя) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_BRAKE_TYPE_DES_ID (Техническая информация/Вид тормозов) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_BRAKE_SYST_DES_ID - (Техническая информация/Тормозная система) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_FUEL_DES_ ID - (Техническая информация/Вид горючего) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_CATALYST_DES_ID - (Техническая информация/Вид катализатора) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_BODY_DES_ID - (Техническая информация/Вид конструкции) ключ, ссылающийся на таблицу DESIGNATIONS=>DES_ID
TYP_KV_STEERING_DES_ID - возможно характеризует рулевое управление, в текдоке всегда пустое
TYP_KV_STEERING_SIDE_DES_ID - возможно характеризует сторону, с которой находится рулевое управление, в текдоке всегда пустое
TYP_MAX_WEIGHT Конструкция/Тоннаж

В которых значения характеристик или ссылка на перевод значения характеристики
А вот названия характеристик имеют в программе тоже переводы
- Вид конструкции
- Тип привода
- Мощность [кВт]
- и т.д.
Значения можно найти в TOF_DES_TEXTS
только как связять с автомобилем??
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38846378
Фотография Мих
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мужчины,
кто анализировал таблицу tof_art_lookup.arl_search_number

В TecDoc 4-2014 нашел много номеров с мусором. Аля - " 10492693", " `7701032023".
Имейте ввиду ;)
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #38919446
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivaha0071. Забыть Access


Он это писал, потому что выполнить поиск по 60.000.000 аналогов менее чем за 2 секунды не на промышленной БД нереально.
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #39024391
Evfarion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос в копилку. Получение применяемости к моделям автомобилей по ID (LA_ART_ID) запчасти
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
TOF_TYPES.TYP_ID,    
TOF_DES_TEXTS.TEX_TEXT AS TEX_TEXT,
TOF_TYPES.TYP_MOD_ID 
FROM TOF_TYPES  
    INNER JOIN TOF_COUNTRY_DESIGNATIONS ON TOF_COUNTRY_DESIGNATIONS.CDS_ID = TOF_TYPES.TYP_MMT_CDS_ID 
    INNER JOIN TOF_DES_TEXTS ON TOF_COUNTRY_DESIGNATIONS.CDS_TEX_ID = TOF_DES_TEXTS.TEX_ID 
    INNER JOIN tof_LINK_LA_TYP ON tof_LINK_LA_TYP.LAT_TYP_ID = TOF_TYPES.TYP_ID
    INNER JOIN tof_LINK_ART ON tof_LINK_ART.LA_ID = tof_LINK_LA_TYP.LAT_LA_ID AND tof_LINK_ART.LA_ART_ID = 429405
WHERE TOF_COUNTRY_DESIGNATIONS.CDS_LNG_ID = 16
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #39043081
okok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, каким запросом выбрать информацию к артикулу "Использовать в автомобилях" ?

артикул выбираю вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT DISTINCT 
                      TOF_BRANDS.BRA_BRAND, TOF_SUPPLIERS.SUP_BRAND, TOF_ART_LOOKUP.ARL_SEARCH_NUMBER, TOF_ART_LOOKUP.ARL_KIND, 
                      TOF_ART_LOOKUP.ARL_ART_ID, TOF_ARTICLES.ART_ARTICLE_NR, TOF_DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT
FROM         TECDOC_CD_3_2015.TECDOC.TOF_ARTICLES, TECDOC_CD_3_2015.TECDOC.TOF_SUPPLIERS, TECDOC_CD_3_2015.TECDOC.TOF_DESIGNATIONS, 
                      TECDOC_CD_3_2015.TECDOC.TOF_DES_TEXTS, { oj TECDOC_CD_3_2015.TECDOC.TOF_ART_LOOKUP LEFT OUTER JOIN
                      TECDOC_CD_3_2015.TECDOC.TOF_BRANDS ON TOF_BRANDS.BRA_ID = TOF_ART_LOOKUP.ARL_BRA_ID }
WHERE     (TOF_ART_LOOKUP.ARL_SEARCH_NUMBER = 'артикул') AND (TOF_ART_LOOKUP.ARL_KIND IN ('3')) AND (TOF_DESIGNATIONS.DES_LNG_ID = 16) AND 
                      (TOF_ARTICLES.ART_ID = TOF_ART_LOOKUP.ARL_ART_ID) AND (TOF_SUPPLIERS.SUP_ID = TOF_ARTICLES.ART_SUP_ID) AND 
                      (TOF_DESIGNATIONS.DES_ID = TOF_ARTICLES.ART_COMPLETE_DES_ID) AND (TOF_DES_TEXTS.TEX_ID = TOF_DESIGNATIONS.DES_TEX_ID)
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #39045393
okok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EvfarionЗапрос в копилку. Получение применяемости к моделям автомобилей по ID (LA_ART_ID) запчасти

Хах! Это оно и есть! Спасибо )
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
TecDoc только оригинальные запросы
    #39876216
igorhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivaha007,
NE RABOTAJUT ZAPROSI ;;
POMOGITE
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #39876217
igorhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evfarion,
ne rabotaet zapros pomogite
...
Рейтинг: 0 / 0
TecDoc только оригинальные запросы
    #39876218
igorhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ivaha007,

nerabotaet
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / TecDoc только оригинальные запросы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (8): Анонимы (6), Bing Bot, Yandex Bot
x
x
Закрыть


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