| 
    
            
         
         | 
    
  | 
Как наиболее оптимально вытащить данные из таблицы? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Сияющий Асинхраль    
     02.06.23 
            ✎
    20:48 
 | 
         
        Задача, казалось бы, простенькая, но торможу... Смысл такой, имеем плоскую таблицу в три колонки: Поставщик, ИД (товара), Адрес (в интернете). Одному ИД могут соответствовать разные поставщики и разные Адреса. Надо сформировать таблицу в которую входило бы по одному значению каждого ИД товара, а колонки Поставщик и Адрес заполнены были бы, но только одним из  правильных соответствий для данного ИД - полный набор соответствий не нужен. Вопрос: как это сделать оптимально? В таблице несколько сотен тысяч строк...     
         | 
|||
| 
    1
    
        Сияющий Асинхраль    
     02.06.23 
            ✎
    20:51 
 | 
         
        В идеале, даже Поставщик не нужен, лучше на выходе иметь один ИД и соответствующий ему ОДИН из доступных ему Адресов...     
         | 
|||
| 
    2
    
        Zamestas    
     02.06.23 
            ✎
    20:52 
 | 
         
        (0) А данные в базе 1С или нет?     
         | 
|||
| 
    3
    
        Сияющий Асинхраль    
     02.06.23 
            ✎
    20:54 
 | 
         
        (2) Да, это содержание регистра сведений...     
         | 
|||
| 
    4
    
        Сияющий Асинхраль    
     02.06.23 
            ✎
    20:56 
 | 
         
        Тупо я, конечно, сделать могу. Например, сделать Итог по ИД, и при переборе результатов брать по первой строке после итога по каждому ИД. Но эта метода мне не кажется нормальной...     
         | 
|||
| 
    5
    
        Zamestas    
     02.06.23 
            ✎
    21:00 
 | 
         
        (3) Какие требования к правильности: "одним из  правильных соответствий для данного ИД"?     
         | 
|||
| 
    6
    
        Сияющий Асинхраль    
     02.06.23 
            ✎
    21:07 
 | 
         
        ИД - это ISBN книги. Поставщики, как я сказал, могут быть разные, и у разных поставщиков могут быть разные ссылки на обложку книги в интернете. Мне надо одну любую правильную ссылку по каждому ISBN, чтобы не отправлять своих пользователей по десяти разным сайтам для каждой книге. Т.е. мне надо каждому ISBN указать единственный адрес в интернете, где пользователь сможет посмотреть обложку, а уж какой это будет сайт без разницы, главное, чтобы конкретной книге ставилась в соответствие конкретная картинка...     
         | 
|||
| 
    7
    
        Михаил Козлов    
     02.06.23 
            ✎
    21:23 
 | 
         
        Создайте соответствие. В цикле по строкам таблицы загоните в него разные ИД и какой- нибудь из адресов.     
         | 
|||
| 
    8
    
        Сияющий Асинхраль    
     02.06.23 
            ✎
    21:25 
 | 
         
        (7) С циклом вопросов нет. В цикле все делается на раз. Просто жутко интересно, можно ли подобное сотворить запросом. Вот этого не придумал...     
         | 
|||
| 
    9
    
        Михаил Козлов    
     02.06.23 
            ✎
    21:26 
 | 
         
        Думаю, что можно: сгруппировать по ИД. Это мода такая, все запросами делать?     
         | 
|||
| 
    10
    
        Шурик71    
     02.06.23 
            ✎
    22:02 
 | 
         
        А в чем сложность то???
 
        Выбрать рег.Ид, Максимум(рег.Адрес) Поместить вт Из РегистрСведений.ХХХХХ как рег Сгруппировать по рег.Ид ; Выбрать вт.Ид, вт.Адрес, рег.Поставщик Из вт Левое соединение РегистрСведений.ХХХХХ как рег По вт.Ид = рег.Ид и вт.Адрес = рег.Адрес И при необходимости в запрос, формирующий вт - добавить еще "Индексировать по Ид, Адрес" , но эффективность индекса проще проверить опытным путем..  | 
|||
| 
    11
    
        Сияющий Асинхраль    
     03.06.23 
            ✎
    18:40 
 | 
         
        (10) Да, спасибо!!! Тоже догадался уже. Редко использую Максимум, но тут реально очень помог.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |