| 
    
            
         
         | 
    
  | 
Запрос между двух таблиц | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        illiona    
     naïve 
    02.07.24 
            ✎
    05:00 
 | 
         
        Добрый день. Помогите написать запрос. Есть две таблицы , если удержание - исполнительный лист, то смотрим есть ли эта запись в первой таблице по ДокументОснование, если есть запись, то ее оставляем, если нет то она нам не нужна во второй таблице.
 
    
Мой запрос: |ВЫБРАТЬ | ВременнаяТаблицаИтог.ЗаданныйПериод КАК ЗаданныйПериод, | ВременнаяТаблицаИтог.ДатаНачалаУдержания КАК ДатаНачалаУдержания, | ВременнаяТаблицаИтог.ДатаОкончанияУдержания КАК ДатаОкончанияУдержания, | ВременнаяТаблицаИтог.Организация КАК Организация, | ВременнаяТаблицаИтог.Сотрудник КАК Сотрудник, | ВременнаяТаблицаИтог.ФизическоеЛицо КАК ФизическоеЛицо, | ВременнаяТаблицаИтог.Удержание КАК Удержание, | ВременнаяТаблицаИтог.ДокументОснование КАК ДокументОснование, | ВременнаяТаблицаИтог.Используется КАК Используется, | ВременнаяТаблицаИтог.Значение КАК Значение, | ВременнаяТаблицаИтог.УдержаниеПроцент КАК УдержаниеПроцент, | ВременнаяТаблицаИтог.РазмерУдержания КАК РазмерУдержания, | ВременнаяТаблицаИтог.ДокументУдержанияДата КАК ДокументУдержанияДата, | ВременнаяТаблицаИтог.ДокументУдержанияНомер КАК ДокументУдержанияНомер, | СТРОКА(ЕСТЬNULL(ВременнаяТаблицаУдержания.ВидРасчета.Наименование, """")) КАК УдержаниеНаименование, | ЕСТЬNULL(ВременнаяТаблицаУдержания.ДокументОснование, """") КАК ДокументОснование1 |ИЗ | ВременнаяТаблицаИтог КАК ВременнаяТаблицаИтог | ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаУдержания КАК ВременнаяТаблицаУдержания | ПО (ВременнаяТаблицаИтог.ФизическоеЛицо = ВременнаяТаблицаУдержания.ФизическоеЛицо | И ВременнаяТаблицаИтог.ДокументОснование = ВременнаяТаблицаУдержания.ДокументОснование) |ГДЕ | Выбор КОГДА Строка(ВременнаяТаблицаИтог.Удержание.Наименование) = ""Удержание по исполнительному документу"" Тогда | ЕСТЬNULL(ВременнаяТаблицаУдержания.ДокументОснование, """") <> """" | Иначе ЕСТЬNULL(ВременнаяТаблицаУдержания.ДокументОснование, """") = """" | Конец 
  | 
|||
| 
    4
    
        Web00001    
     02.07.24 
            ✎
    05:25 
 | 
         
        (0)>если есть запись, то ее оставляем, если нет то она нам не нужна во второй таблице
 
        Предлагаю тебе, ответить(себе) на вопросы: 1. Оставляем где? 2. Что значит "она нам не нужна во второй таблице"? 3. Каким должен быть результат запроса? Какие колонки из каких таблиц должны получить в третьей таблице - результате запроса. Ты не можешь изменить ни первую ни вторую таблицу. У тебя левое соединение к таблице "ВременнаяТаблицаИтог" значит в результат запроса попадут все записи из этой таблицы. Предлагаю тебе сначала понять, что ты хочешь получить на выходе в результате запроса, а не что ты хочешь "оставить во второй таблице". И если я тебя правильно понял, результатом запроса должны быть записи из таблицы "ВременнаяТаблицаИтог" у которой в поле "ДокументОснование" есть значения из таблицы "ВременнаяТаблицаУдержания" то тогда все верно тебе написали в условии должно быть либо: "НЕ ВременнаяТаблицаУдержания.ДокументОснование ЕСТЬ NULL" либо соединение должно быть внутренним.  | 
|||
| 
    5
    
        illiona    
     naïve 
    02.07.24 
            ✎
    05:34 
 | 
         
        В результате соединения двух таблиц должен быть результат
 
        Если исполнительный лист есть в первой таблице, то в результате он должен вывестись, если его нет то не должен  | 
|||
| 
    6
    
        illiona    
     naïve 
    02.07.24 
            ✎
    05:38 
 | 
         
        (4) При внутреннем соединение или при НЕ ВременнаяТаблицаУдержания.ДокументОснование ЕСТЬ NULL в результате остается только одна запись по исполнительному листу, а погашение займа строка не отображается     
         | 
|||
| 
    9
    
        Web00001    
     02.07.24 
            ✎
    07:51 
 | 
         
        >Если исполнительный лист есть в первой таблице, то в результате он должен вывестись, если его нет то не должен
 
        Тогда делать ничего не надо. Надо просто вывести поле с исполнительным листом из первой таблицы. Если там исполнительный лист есть, он выведется, если его там нет, то соответственно не выведется, его же там нет  | 
|||
| 
    10
    
        Мультук    
     гуру 
    02.07.24 
            ✎
    08:32 
 | 
         
        (0)
 
        Вариант 1 Из таблицы ВременнаяТаблицаИтог -- все записи Из таблицы ВременнаяТаблицаУдержания -- только записи для исполнительных листов |ИЗ | ВременнаяТаблицаИтог КАК ВременнаяТаблицаИтог | ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаУдержания КАК ВременнаяТаблицаУдержания | ПО (ВременнаяТаблицаИтог.ФизическоеЛицо = ВременнаяТаблицаУдержания.ФизическоеЛицо | И ВременнаяТаблицаИтог.ДокументОснование = ВременнаяТаблицаУдержания.ДокументОснование) | И ВременнаяТаблицаИтог.Удержание.Наименование) = ""Удержание по исполнительному документу"" |ГДЕ | 1 = 1 Вариант 2 Из таблицы ВременнаяТаблицаИтог -- только записи по ""Удержание по исполнительному документу"" Из таблицы ВременнаяТаблицаУдержания -- только записи для исполнительных листов |ИЗ | ВременнаяТаблицаИтог КАК ВременнаяТаблицаИтог | ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаУдержания КАК ВременнаяТаблицаУдержания | ПО (ВременнаяТаблицаИтог.ФизическоеЛицо = ВременнаяТаблицаУдержания.ФизическоеЛицо | И ВременнаяТаблицаИтог.ДокументОснование = ВременнаяТаблицаУдержания.ДокументОснование) | |ГДЕ | ВременнаяТаблицаИтог.Удержание.Наименование) = ""Удержание по исполнительному документу""  | 
|||
| 
    11
    
        Web00001    
     02.07.24 
            ✎
    07:55 
 | 
         
        (4)>результате остается только одна запись по исполнительному листу, а погашение займа строка не отображается
 
        Значит эта строка не подходит под условие ВременнаяТаблицаУдержания.ДокументОснование ЕСТЬ NULL. Логично же?  | 
|||
| 
    12
    
        Web00001    
     02.07.24 
            ✎
    08:00 
 | 
         
        (10)>Из таблицы  ВременнаяТаблицаУдержания -- только записи для исполниительных листов
 
        Будет соединение где должны совпасть физлица и документы основания, и в поле ВременнаяТаблицаУдержания.ДокументОснование будет null для документов которых нет в "ВременнаяТаблицаИтог.ДокументОснование", здесь, что не работает?  | 
|||
| 
    13
    
        Мультук    
     гуру 
    02.07.24 
            ✎
    08:30 
 | 
         
        (12) 
 
        1) Мне лень лезть в ЗУП и смотреть правильные ли она написала соединения (документ. физ.лицо) и могут ли быть дубли 2) Я пытаюсь "угадать" что хочет топкпастер Пока она не родит вменяемый пример из трех табличек -- всё бесполезно. Я перечитал сообщения еще раз и понял "что ничего не понял"  | 
|||
| 
    14
    
        АгентБезопасной Нацио    
     02.07.24 
            ✎
    09:01 
 | 
         
        (13) всё потому, что "кто ясно мыслит - тот ясно излагает". А когда даже тема называется "запрос МЕЖДУ двух таблиц", то ничего внятного ожидать не следует...     
         | 
|||
| 
    15
    
        mikecool    
     02.07.24 
            ✎
    09:19 
 | 
         
        (0) смотри до просветления
 
        https://www.youtube.com/watch?v=nepj0RvohAw  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |