ART LOOKUP.sql — различия между версиями
Mstar (обсуждение | вклад) |
Mstar (обсуждение | вклад) |
||
(не показана одна промежуточная версия этого же участника) | |||
Строка 38: | Строка 38: | ||
SELECT DISTINCT | SELECT DISTINCT | ||
− | + | IF (ART_LOOKUP.ARL_KIND IN (3, 4), BRANDS.BRA_BRAND, SUPPLIERS.SUP_BRAND) AS BRAND, | |
− | + | ART_LOOKUP.ARL_SEARCH_NUMBER AS NUMBER, | |
− | + | ART_LOOKUP.ARL_KIND, | |
− | + | ART_LOOKUP.ARL_ART_ID, | |
− | + | DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT | |
− | FROM | + | FROM ART_LOOKUP |
− | + | LEFT JOIN BRANDS ON BRANDS.BRA_ID = ART_LOOKUP.ARL_BRA_ID | |
− | + | INNER JOIN ARTICLES ON ARTICLES.ART_ID = ART_LOOKUP.ARL_ART_ID | |
− | + | INNER JOIN SUPPLIERS ON SUPPLIERS.SUP_ID = ARTICLES.ART_SUP_ID | |
− | + | INNER JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = ARTICLES.ART_COMPLETE_DES_ID | |
− | + | INNER JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID | |
− | + | ||
WHERE | WHERE | ||
− | + | ART_LOOKUP.ARL_SEARCH_NUMBER = @NUMBER AND | |
− | + | ART_LOOKUP.ARL_KIND IN (1, 2, 3, 4) AND | |
− | + | DESIGNATIONS.DES_LNG_ID = @LNG_ID | |
− | GROUP BY | + | GROUP BY BRAND, NUMBER ; |
− | + | ||
− | + | * Назад к оглавлению: [[Документация_по_запросам_и_структуре_Текдок_-_версия_2]] | |
− | + | ||
+ | * Подробнее о ценах ПО Ирбис на базе текдок от нашей компании: http://www.mstarproject.com/?action=tecdoc_mysql_site |
Текущая версия на 09:57, 13 мая 2013
/* Поиск изделия (от любых производителей) по заданному оригинальному/неоригинальному/торговому номеру. */
/* Используется для уточнения производителя, чтобы дальше искать аналоги уже по конкретному сочетанию: */
/* Номер + Производитель */
/* BRAND - Название производителя изделия */
/* NUMBER - Номер изделия */
/* ARL_KIND - Тип номера изделия: 1 или 4 - Неоригинальный, 2 - Торговый, 3 - Оригинальный */
/* ARL_ART_ID - Ключ ART_ID соответствующего неоригинального изделия */
/* ART_COMPLETE_DES_TEXT - Название изделия */
/* */
/* Здесь на входе и выходе упрощённые варианты номеров (только из букв/цифр - без пробелов/точек/тире и т.п.) */
/* По упрощённым номерам искать лучше, т.к. исключаются разные варианты написания номера - */
/* сам TecDoc ищет именно так. */
/* Вам нужно удалить из искомого номера всё кроме букв/цифр перед использованием этого запроса,
/* либо использовать для этого MySQL-функцию CLEAN_NUMBER из примера FUNCTIONS.sql. */
/* */
/* ВНИМАНИЕ: Не забывайте 'одинарные кавычки' при подстановке значений вместо переменной @NUMBER,
иначе этот запрос работает ОЧЕНЬ медленно, т.к. не использует текстовый индекс по полю ARL_SEARCH_NUMBER */
SET @NUMBER = '1244211212'; /* MERCEDES-BENZ | Тормозной диск */ /* SET @NUMBER = '52107'; /* DINEX/NRF/PAGID/SPIDAN | Выпускной трубопровод */ SET @LNG_ID = 16; /* 1 - Немецкий язык; 16 - Русский язык */
SELECT DISTINCT IF (ART_LOOKUP.ARL_KIND IN (3, 4), BRANDS.BRA_BRAND, SUPPLIERS.SUP_BRAND) AS BRAND, ART_LOOKUP.ARL_SEARCH_NUMBER AS NUMBER, ART_LOOKUP.ARL_KIND, ART_LOOKUP.ARL_ART_ID, DES_TEXTS.TEX_TEXT AS ART_COMPLETE_DES_TEXT FROM ART_LOOKUP LEFT JOIN BRANDS ON BRANDS.BRA_ID = ART_LOOKUP.ARL_BRA_ID INNER JOIN ARTICLES ON ARTICLES.ART_ID = ART_LOOKUP.ARL_ART_ID INNER JOIN SUPPLIERS ON SUPPLIERS.SUP_ID = ARTICLES.ART_SUP_ID INNER JOIN DESIGNATIONS ON DESIGNATIONS.DES_ID = ARTICLES.ART_COMPLETE_DES_ID INNER JOIN DES_TEXTS ON DES_TEXTS.TEX_ID = DESIGNATIONS.DES_TEX_ID WHERE ART_LOOKUP.ARL_SEARCH_NUMBER = @NUMBER AND ART_LOOKUP.ARL_KIND IN (1, 2, 3, 4) AND DESIGNATIONS.DES_LNG_ID = @LNG_ID GROUP BY BRAND, NUMBER ;
- Назад к оглавлению: Документация_по_запросам_и_структуре_Текдок_-_версия_2
- Подробнее о ценах ПО Ирбис на базе текдок от нашей компании: http://www.mstarproject.com/?action=tecdoc_mysql_site