Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выборка из таблицы  [new]
Интересно
Member

Откуда:
Сообщений: 26
Имеется такой код, в нем происходит сравнение кода товара в документе с перечисленными maincode`ми таблицы 2 и при наличии таковых выдается сообщение 1
IF ( ЗАПРОС( "SELECT CASE WHEN EXISTS( SELECT * FROM table1 WHERE ic = " + @ИДДокумента + " AND nn IN ( SELECT nn FROM table2 WHERE maincode IN ('001','002','003','004',......))) THEN 1 ELSE 0 END " ) == 1 AND
{
    СООБЩЕНИЕ( "Сообщение 1" );
    RETURN false;
}
RETURN true;

Нужно сделать так, чтобы пользователь видел наименование и код совпавшего товара.
Можно сделать, конечно, так: копировать этот код по группам товаров и на каждую группу свое сообщение
//группа товаров 1
IF ( ЗАПРОС( "SELECT CASE.....
{
    СООБЩЕНИЕ( "Сообщение 1" );
    RETURN false;
}
//группа товаров 2
IF ( ЗАПРОС( "SELECT CASE.....
{
    СООБЩЕНИЕ( "Сообщение 2" );
    RETURN false;
}
и т.д.

Но количество кодов оч. большое и это займет много времени. Хочу сделать так, чтобы при совпадении кодов он по maincode искал name товара из той же table2 и выдавал это в сообщении. Например, СООБЩЕНИЕ ("Товар с кодом (maincode) - наименование товара (name) ")
Как я понимаю, при последовательной проверке кодов 001...002...003... и совпадении нужно сохранить это значение в переменную и потом в сообщении запросом вывести
SELECT name FROM table2 WHERE maincode IN (сохраненная переменная)

Может кто -нибудь подсказать?
23 июн 14, 12:24    [16205727]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из таблицы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8833
В Table 2 должно быть поле с номером группы товаров и справочник сообщений для группы в Table 3.
В этом случае надо отказаться и от EXISTS.
23 июн 14, 12:46    [16205841]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из таблицы  [new]
Интересно
Member

Откуда:
Сообщений: 26
Владислав Колосов,
создавать новые таблицы нельзя, так как не позволяет ПО.
В принципе группу можно достать из table 2, только как совпавший код с наименованием в сообщение вывести?
23 июн 14, 13:28    [16206124]     Ответить | Цитировать Сообщить модератору
 Re: Выборка из таблицы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8833
При монотонно возрастающей нумерации групп можно использовать CHOOSE(nGroup, 'Сообщение 1', 'Сообщение 2', ..., 'Сообщение N').
Иначе через CASE.
23 июн 14, 14:03    [16206453]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить