Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите плиз!
 
 автор: alexx-alexx   (07.10.2008 в 14:28)   личное сообщение
 
 

Добрый день всем!
Помогите пожалуйста решить проблему.
Имеем две таблицы:

товар количество код описание
zzz132480945 65 zzz авто
zzzz34623546 54 zzzz продукты
zzzzzz456734 45 zzzzz канцелярия
zzzzz3598346 87 zzzzzz игрушки

где z - текстовый символ 0-9

Задача - выбрать для каждого товара соответствующую ему группу по наиболее длинному совпадению КОДА с начала (!) строки
Заранее всем СПС БИГ !

  Ответить  
 
 автор: час   (07.10.2008 в 16:56)   личное сообщение
 
 

А можно ваши таблички, хотя бы кусочки и бкез ZZZZZZZZZZZZZZZZ

  Ответить  
 
 автор: alexx-alexx   (07.10.2008 в 17:22)   личное сообщение
 
 

товар количество код описание
998132480945 65 998 авто
998934623546 54 9989 продукты
998998456734 45 99866 канцелярия
998663598346 87 998998 игрушки

  Ответить  
 
 автор: FORMAT   (07.10.2008 в 18:55)   личное сообщение
 
 

SELECT DISTINCT Таблица1.Товар, Таблица1.Количество,
(SELECT Таблица2.Описание FROM Таблица2 WHERE Таблица2.Код LIKE[СимволыДляСовпадения]) AS Примечание
FROM Таблица1
WHERE Таблица1.Товар Like [СимволыДляСовпадения] & "*";

Но в вашем случае при выборе кода 998 выдаст все записи и пометит их как авто.

ЗЫ (Это если я правильно понял условие задачи).

  Ответить  
 
 автор: час   (07.10.2008 в 19:40)   личное сообщение
 
 

извините, а где же таблички?

  Ответить  
 
 автор: FORMAT   (08.10.2008 в 10:10)   личное сообщение
 
 

Сорри, теперь вижу, что неправильно порнял условие.
Для решения в вашем случае нужно изменить структуру таблиц.
Введите в таблицу код-описание еще один столбец - ID кода, а в таблице товаров проставьте напротив каждого товара его код. И вытягивайте наименование группы по ее коду.


Иначе, только запросами это сделать, по моему, нельзя.

  Ответить  
 
 автор: Дрюня   (08.10.2008 в 10:18)   личное сообщение
 
 

мне кажется, это будет многопроходная задача.
первый проход - определить максимальный по длине индекс

  Ответить  
 
 автор: Анатолий (Киев)   (08.10.2008 в 10:58)   личное сообщение
 
 

Я ничего не понял.
В вашем примере 4 разных товара. Какую группу нужно выбрать для каждого товара?
Покажите на примере, что и из чего надо быбрать.

  Ответить  
 
 автор: alexx-alexx   (08.10.2008 в 15:59)   личное сообщение
 
 

товар количество код группа_товаров
998132480945 65 998 авто
998934623546 54 9989 продукты
998998456734 45 99866 канцелярия
998663598346 87 998998 игрушки
998900000000 18

Результат запроса должен быть:
товар группа_товаров код
998663598346 канцелярия 99866
998998456734 игрушки 998998
998132480945 авто 998
998900000000 продукты 9989


т.е. код товара дожен выбираться по самому длинному совпадению с начала товара
напр. 998998456734 должен быть выбран код 998998, а НЕ 998, 9989 т.к. он наболее соответствующий (длинный)
Если что - ICQ 303 610 253

  Ответить  
 
 автор: час   (08.10.2008 в 16:37)   личное сообщение
 
 

извините, а где же кусочек таблички?

  Ответить  
 
 автор: alexx-alexx   (08.10.2008 в 16:53)   личное сообщение
14 Кб.
 
 

Вот

  Ответить  
 
 автор: FORMAT   (08.10.2008 в 17:01)   личное сообщение
 
 

Это нужно сделать в Экселе?

  Ответить  
 
 автор: alexx-alexx   (08.10.2008 в 17:12)   личное сообщение
 
 

нет, ms access 2003

  Ответить  
 
 автор: FORMAT   (08.10.2008 в 18:50)   личное сообщение
25 Кб.
 
 

См Таблицу1 до запуска запроса и после

  Ответить  
 
 автор: alexx-alexx   (09.10.2008 в 09:53)   личное сообщение
 
 

похоже что СУПЕР !!!
ща попробую разобрать

Рюмка чая с меня :-)

  Ответить  
 
 автор: alexx-alexx   (09.10.2008 в 10:09)   личное сообщение
 
 

Слушай, если есть пара минут можешь в аське разжевать откуда и что?
303610253

  Ответить  
 
 автор: alexx-alexx   (09.10.2008 в 10:09)   личное сообщение
 
 

Заранее СПС

  Ответить  
 
 автор: FORMAT   (09.10.2008 в 10:16)   личное сообщение
 
 

у меня нет аське на компе ( сисадмин закрыл) да и вааще никогда не было

  Ответить  
 
 автор: FORMAT   (09.10.2008 в 10:21)   личное сообщение
 
 

Так а что там непонятно. Открываешь запрос в режиме SQL - там все расписано. Для выбора используется ф-ция InStr ее синтаксис неплохо расписан в хэлпе.(F1)

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList