|   |   | 
| 
 | В СКД отбор по наименованию... | ☑ | ||
|---|---|---|---|---|
| 0
    
        VSpicy naïve 13.10.23✎ 12:36 | 
        Всем доброго дня!
 Есть Регистр сведений (ДокументыТС), в нем указаны ТС и все документы (ПТС, ОСАГО и т.п.) к нему. Задача: нужно показать ТС у которых отсутствует ОСАГО. Подскажите пожалуйста как лучше реализовать. | |||
| 1
    
        petya_ petrov_63 13.10.23✎ 13:14 | 
        ТЗ не полное, слишком много вариантов. И что значит "показать"? Отчет, признак в форме?     | |||
| 2
    
        VSpicy naïve 13.10.23✎ 14:22 | 
        (1)Сформировать список в группировке по ТС: Автомобили у которых отсутствует строка с документом "ОСАГО".     | |||
| 3
    
        Donkey_hot 13.10.23✎ 14:23 | 
        (2) Т.е. в регистре два измерения: ТС и вид документа и ресурс - номер документа?     | |||
| 4
    
        lubitelxml 13.10.23✎ 14:23 | 
        ГДЕ твояТаблица.Ссылка ЕСТЬ NULL     | |||
| 5
    
        lubitelxml 13.10.23✎ 14:24 | 
        Если РС, то просто твояТаблца.ЛюбоеПолеВыборка ЕСТЬ NULL     | |||
| 6
    
        lubitelxml 13.10.23✎ 14:25 | 
        Точнее не в ГДЕ а ПО в соединении запроса     | |||
| 7
    
        VSpicy naïve 13.10.23✎ 14:28 | 
        Если ставить условие: НЕ ВидДокумента.Код = "000001" - (код справочника по ОСАГО), СКД показывает весь список ТС со всеми документами кроме "ОСАГО", хотя в этих ТС "ОСАГО" есть(...     | |||
| 8
    
        VSpicy naïve 13.10.23✎ 14:29 | 
        (3) Да.     | |||
| 9
    
        VSpicy naïve 13.10.23✎ 14:30 | 
        (8) Номера правда нет.     | |||
| 10
    
        lubitelxml 13.10.23✎ 14:30 | 
        (8) покажи запрос     | |||
| 11
    
        petya_ petrov_63 13.10.23✎ 14:30 | 
        Конкурс телепатов продолжается )
 Хотя это не в первой ... Даже конфа не указана ... Наверное самописка .. | |||
| 12
    
        VSpicy naïve 13.10.23✎ 14:31 | 
        (6) Через временные таблицы...?     | |||
| 13
    
        lubitelxml 13.10.23✎ 14:32 | 
        (11) я уже хочу написать "Lininge star" опять спалился :)     | |||
| 14
    
        VSpicy naïve 13.10.23✎ 14:33 | 
        ВЫБРАТЬ РАЗЛИЧНЫЕ
 уатДокументыТС.ВидДокумента КАК ВидДокумента, уатДокументыТС.ТС КАК ТС, уатДокументыТС.ДатаВыдачи КАК ДатаВыдачи, уатДокументыТС.ДатаОкончания КАК ДатаОкончания ИЗ РегистрСведений.уатДокументыТС КАК уатДокументыТС ГДЕ НЕ уатДокументыТС.Архив И уатДокументыТС.ТС.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1) И уатДокументыТС.ТС.ДатаВыводаИзЭксплуатации = ДАТАВРЕМЯ(1, 1, 1) И НЕ уатДокументыТС.ВидДокумента.Код = "000000001" | |||
| 15
    
        Donkey_hot 13.10.23✎ 14:41 | 
        1 вариант: Справочник ТС соединяете левым внешним соединением с вашим регистром по условию:
 Спр.Ссылка = Рег.ТС и рег.ВидДокумента = ОСАГО, полученную выборку ограничиваете ГДЕ Рег.любоеполе ЕСТЬ NULL 2 вариант: выбираете во временную таблицу все ТС из регистра по условию ВидДокумента = ОСАГО, потом выбираете ТС из справочника по условию ГДЕ НЕ Спр.Ссылка в (Выбрать ТС из ВТ) | |||
| 16
    
        lubitelxml 13.10.23✎ 14:43 | 
        (14) во временную таблицу выбери из справочника все ТС, далее внутреннее соединение ПО полеЗапросаСправочника ЕСТЬ NULL     | |||
| 17
    
        VSpicy naïve 13.10.23✎ 14:45 | 
        (15) 1 Вариант оптимальный, надо оценить; 2 вариант почти сам хотел так делать...
 В любом случае спасибо большое!!! | |||
| 18
    
        АгентБезопасной Нацио 13.10.23✎ 17:56 | 
        (13) LivingStar?     | |||
| 19
    
        Valdis2007 13.10.23✎ 19:17 | 
        (0) ну где..ну где , такие замечательные задачки дают?))     | |||
| 20
    
        VSpicy naïve 17.10.23✎ 16:49 | 
        (15) В этом запросе получилось показать ТС у которых документ ОСАГО отсутствует как действующий, так  недействующий (в архиве).
 Как бы показать ТС у которых вообще нет документа ОСАГО и если документ ОСАГО есть, но находится в архиве (без действующих)? ВЫБРАТЬ уатТС.Ссылка КАК ТСБезОСАГО ПОМЕСТИТЬ вт_БезОСАГО ИЗ Справочник.уатТС КАК уатТС ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатДокументыТС КАК уатДокументыТС ПО уатТС.Ссылка = уатДокументыТС.ТС И (уатДокументыТС.ВидДокумента.Код = "000000001") ГДЕ уатТС.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1) И уатТС.ДатаВыводаИзЭксплуатации = ДАТАВРЕМЯ(1, 1, 1) И уатДокументыТС.ВидДокумента ЕСТЬ NULL ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ вт_БезОСАГО.ТСБезОСАГО КАК ТС ИЗ РегистрСведений.уатДокументыТС КАК уатДокументыТС ЛЕВОЕ СОЕДИНЕНИЕ вт_БезОСАГО КАК вт_БезОСАГО ПО уатДокументыТС.ТС = вт_БезОСАГО.ТСБезОСАГО ГДЕ НЕ уатДокументыТС.Архив И уатДокументыТС.ТС.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1) И уатДокументыТС.ТС.ДатаВыводаИзЭксплуатации = ДАТАВРЕМЯ(1, 1, 1) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |