| 
    
        
     
     | 
    
  | 
Что-то не соображу как запрос написать | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        alexmobile    
     17.10.13 
            ✎
    19:44 
 | 
         
        Имеются три виртуальные таблицы (ВТ). ВТ1 - полный справочник статей затрат с полем "Статья". ВТ2 - данные по расходам поля "Статья","Ресурс","Рекв", ВТ3- сгруппированный список "Рекв" из ВТ2.
 
        Требуется получить выходную таблицу с полным списком статей и значений ресурса для каждого реквизита ВТ2 независимо было-ли значение ресурса на данной статье. Для наглядности нарисую результат: Рекв1 Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН Рекв2 Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН ..... РеквН Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН  | 
|||
| 
    1
    
        alexmobile    
     18.10.13 
            ✎
    08:06 
 | 
         
        апну пожалуй.
 
        виртуальные читать как временные.  | 
|||
| 
    2
    
        Лодырь    
     18.10.13 
            ✎
    08:10 
 | 
         
        Декартово произведение статей с реквизитами соедини  левым соединением с ВТ2?     
         | 
|||
| 
    3
    
        alexmobile    
     18.10.13 
            ✎
    08:15 
 | 
         
        (2)В ВТ2 для некоторых реквизитов нет движений по статьям, соответственно и этих строк нету, а в результате они нужны с пустыми значениями ресурса.     
         | 
|||
| 
    4
    
        Лодырь    
     18.10.13 
            ✎
    08:16 
 | 
         
        (3) Поэтому и левое соединение. А вместо ресурса юзать ЕСТЬNULL(Ресурс)     
         | 
|||
| 
    5
    
        Лодырь    
     18.10.13 
            ✎
    08:17 
 | 
         
        точнее ЕСТЬNULL(Ресурс,"тут нихрена нету")     
         | 
|||
| 
    6
    
        alexmobile    
     18.10.13 
            ✎
    08:40 
 | 
         
        (2)
 
        выбрать вт1.Статья, Вт2.Ресурс, ВТ2.Реквизит из ВТ1 как как вт1 левое соединение ВТ2 как вт2 по вт1.Статья=вт2.Статья Такой запрос не подходит. т.к. в результат не добавятся строки со статьями которых нет в ВТ2 Рекв1 Статья1 Ресурс1 Статья2 Ресурс2 (этой строки нету т.к. в ВТ2 нет такой статьи для рекв1. а нужна) ... СтатьяН РесурсН Рекв2 Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН ..... РеквН Статья1 Ресурс1 Статья2 Ресурс2 ... СтатьяН РесурсН  | 
|||
| 
    7
    
        Мимохожий Однако    
     18.10.13 
            ✎
    08:52 
 | 
         
        Полное соединение пробовал?     
         | 
|||
| 
    8
    
        m-serg74    
     18.10.13 
            ✎
    08:56 
 | 
         
        (7) зачем полное если ВТ1 судя по (0) полный справочник статей...
 
        (6) как при ЛЕВОМ попадут не все строки из ВТ1?  | 
|||
| 
    9
    
        Лодырь    
     18.10.13 
            ✎
    09:00 
 | 
         
        ВЫБРАТЬ
 
        ВложенныйЗапрос.Статья, ВложенныйЗапрос.Реквизит, ЕСТЬNULL(Вт2.Ресурс, "не было данных") КАК Поле1 ИЗ (ВЫБРАТЬ ВТ1.Статья КАК Статья, ВТ3.Реквизит КАК Реквизит ИЗ ВТ1 КАК ВТ1, ВТ3 КАК ВТ3) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2 ПО ВложенныйЗапрос.Статья = Вт2.Статья И ВложенныйЗапрос.Реквизит = Вт2.Реквизит  | 
|||
| 
    10
    
        alexmobile    
     18.10.13 
            ✎
    09:04 
 | 
         
        (7) да
 
        (8) вот так, не попадают щас попробую (9)  | 
|||
| 
    11
    
        m-serg74    
     18.10.13 
            ✎
    09:07 
 | 
         
        (9) /с полным списком статей и значений ресурса для каждого реквизита ВТ2/
 
        на фига в (9) ВЫБРАТЬ ВТ1.Статья КАК Статья, ВТ3.Реквизит КАК Реквизит ИЗ ВТ1 КАК ВТ1, ВТ3 КАК ВТ3 не проще тогда левое с соединением просто по статье  | 
|||
| 
    12
    
        m-serg74    
     18.10.13 
            ✎
    09:10 
 | 
         
        +(11) 
 
        
     | 
|||
| 
    13
    
        m-serg74    
     18.10.13 
            ✎
    09:12 
 | 
         
        (11),(12) отставить (9) наверное правильно     
         | 
|||
| 
    14
    
        alexmobile    
     18.10.13 
            ✎
    09:12 
 | 
         
        (12)
 
        нет. В ВТ2 для некоторых реквизитов нет движений по статьям, соответственно и этих строк нету, а в результате они нужны с пустыми значениями ресурса.  | 
|||
| 
    15
    
        m-serg74    
     18.10.13 
            ✎
    09:14 
 | 
         
        (14) я в (13) написал уже     
         | 
|||
| 
    16
    
        alexmobile    
     18.10.13 
            ✎
    09:20 
 | 
         
        (9) нет. результат как при левом вт1 к вт2     
         | 
|||
| 
    17
    
        Лодырь    
     18.10.13 
            ✎
    09:24 
 | 
         
        (16) Не может быть.     
         | 
|||
| 
    18
    
        m-serg74    
     18.10.13 
            ✎
    09:43 
 | 
         
        (17) кстати может надо не к вложенному а к результату полного соединения статьи/реквизиты присоединить ВТ2     
         | 
|||
| 
    19
    
        m-serg74    
     18.10.13 
            ✎
    09:44 
 | 
         
        (18) опять отставить у тебя в (9) так и есть     
         | 
|||
| 
    20
    
        Sabbath    
     18.10.13 
            ✎
    09:47 
 | 
         
        (0) в 9 (9) написали, как и я думаю     
         | 
|||
| 
    21
    
        Sabbath    
     18.10.13 
            ✎
    09:50 
 | 
         
        (16) ну тебе же нужны все комбинации Статья+Рекв и к ним значения ресурса?
 
        Статья+Рекв получается декартовым, а значение ресурса подсоединяется левым с использованием ЕСТЬNULL. Корчое как в (9) все. Или задача другая  | 
|||
| 
    22
    
        alexmobile    
     18.10.13 
            ✎
    09:50 
 | 
         
        Да. в (9) все верно. я немного ошибся.     
         | 
|||
| 
    23
    
        alexmobile    
     18.10.13 
            ✎
    09:50 
 | 
         
        результат получен     
         | 
|||
| 
    24
    
        Sabbath    
     18.10.13 
            ✎
    09:51 
 | 
         
        (16) Только рекв бери не из регистра, наверно, если тебе нужны все значения, а из справочника, или где он у тебя там     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |